저는 현재 C# WPF의 목록 상자에 XML 파일을 바인딩하고 있습니다. itemtemplate 내에서 컨트롤을 추가했습니다. 다음과 같이 a를 playButton으로는 내가 예를 들어, 그 ListBoxItem의에서 텍스트 블록의 텍스트를 다른 속성을 액세서하려면 클릭 이제 다른 목록 상자 항목 컨트롤 및 버튼 클릭시 속성에 액세스
<DataTemplate x:Key="SinglecueTemplate">
<Grid Height="30" Width="425" Margin="3,3,0,3">
<Button Content="{Binding XPath=nr}" Width="30" Style="{DynamicResource CUEStyle_Button_Inhoudknopje}" Template="{DynamicResource CUEStyle_singlecueknopnummer}" Height="Auto" HorizontalAlignment="Left" Background="#FFABCCED" Foreground="White" IsEnabled="False"/>
<TextBlock x:Name="name" Margin="54,0,114.667,0" Width="Auto" VerticalAlignment="Center" FontSize="16" Foreground="Gray" Text="{Binding XPath=Name}"/>
<Button x:Name="playbutton" Width="30" Style="{DynamicResource CUEStyle_Button_Groot}" Template="{DynamicResource CUEStyle_Rondknopje}" Height="Auto" HorizontalAlignment="Right" Margin="0,0.55,74.737,-0.55" Content="u" FontFamily="Wingdings 3" Foreground="#FF0178D3" Opacity="1" BorderBrush="#FF0178D3" Click="playcue"/>
<Button Width="30" Style="{DynamicResource CUEStyle_Button_Groot}" Template="{DynamicResource CUEStyle_Rondknopje}" Height="Auto" HorizontalAlignment="Right" Margin="0,0.55,37.071,-0.55" Content="¢" FontFamily="Wingdings 2" Foreground="Gray" Opacity="0.4"/>
<Button Width="15" Style="{DynamicResource CUEStyle_Button_Groot}" Template="{DynamicResource CUEStyle_kleinloopje}" Height="15" HorizontalAlignment="Left" Margin="15,0,0,-5.5" Content="Q" FontFamily="Wingdings 3" Foreground="White" FontWeight="Bold" FontSize="10.667" Opacity="1" VerticalAlignment="Bottom" BorderBrush="{x:Null}" Background="{x:Null}" IsEnabled="{Binding XPath=Loop}"/>
<TextBlock Margin="0,0,114.667,0" Width="81.07" VerticalAlignment="Center" FontSize="16" Foreground="Gray" Text="03:02:11" HorizontalAlignment="Right"/>
</Grid>
</DataTemplate>
. 나는이 작업을 수행하는 방법에 고개를 다음과 함께했다 :
private void playcue(object sender, System.Windows.RoutedEventArgs e)
{
Button playcue = (Button)sender;
Textbox titel = (Textbox)playcue.DataContext;
MessageBox.Show(titel);
}
그러나 위의 코드는 나에게 형 텍스트 상자를 알 수 없다는 오류를 제공합니다. 템플릿 내의 다른 항목에 액세스 할 수 있도록 데이터 템플릿을 사용하여 무언가를해야합니까? 또는 데이터 소스에서 형제 노드에 액세스 할 수 있습니까?
UPDATE
답변 발견했다. 이제 나중에 참조 : 항목에서
private void playcue(object sender, System.Windows.RoutedEventArgs e)
{
Button playcue = (Button)sender;
XmlElement name = (XmlElement)playcue.DataContext;
MessageBox.Show(name.InnerText);
}
반환 모든 형제 자매 값을
당신은 당신이 그렇게 할 수있는 특정 형제에 액세스하려면 :
MessageBox.Show(name.SelectSingleNode("Name").InnerXml);