我有一个ListBox,这是绑定到ObservableCollection
。带DataTemplates的WPF ListBoxItems - 如何从DataTemplate中引用CLR对象绑定到ListBoxItem?
每个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?");
}
这是完美的,你也设法修复我的问题的措辞。我会编辑它,因为你是对的,我对绑定的CLR对象感兴趣,而不是ListBoxItem本身。 – 2009-04-19 20:19:59