ListBox를 가지고 있는데, 이는 ObservableCollection
에 바인딩되어 있습니다.DataTemplates가 포함 된 WPF ListBoxItem - DataTemplate 내에서 ListBoxItem에 바인딩 된 CLR 개체를 참조하려면 어떻게해야합니까?
각 ListBoxItem
은 DataTemplate
으로 표시됩니다. 내 DataTemplate
에있는 버튼을 클릭하면 해당 버튼이 ObservableCollection
의 멤버에 대한 참조가 필요합니다.이 버튼은 DataTemplate의 일부입니다. 단추를 클릭 할 때 항목이 선택되지 않기 때문에 ListBox.SelectedItem
속성을 사용할 수 없습니다.
그래서 : 마우스를 움직이거나 버튼을 클릭 할 때 ListBox.SelectedItem
을 올바르게 설정하는 방법을 알아야합니다. 또는 단추가 속한 ListBoxItem
에 바인딩 된 CLR 개체에 대한 참조를 가져 오는 다른 방법을 찾아야합니다. 두 번째 옵션은 더 깨끗해 보이지만, 어느 쪽이든 괜찮습니다. 아래
간체 코드 세그먼트 :
XAML :
<DataTemplate x:Key="postBody">
<Grid>
<TextBlock Text="{Binding Path=author}"/>
<Button Click="DeleteButton_Click">Delete</Button>
</Grid>
</DataTemplate>
<ListBox ItemTemplate="{StaticResource postBody}"/>
C 번호 :
private void DeleteButton_Click(object sender, RoutedEventArgs e)
{
Console.WriteLine("Where mah ListBoxItem?");
}
이것은 완벽하며 내 질문의 문구도 수정할 수 있습니다. 당신이 맞다면 편집 할 것이고, 나는 ListBoxItem 자체가 아니라 바운드 CLR 객체에 관심이 있습니다. –