所以我在DataTemplate
我的Listbox
ItemTemplate
. 任何想法如何Listbox
从按钮单击中获取项目的索引?我看不到抓住按钮的父母。
<ListBox.ItemTemplate>
<DataTemplate DataType="{x:Type local:Img}">
<Button Click="lstButton_Click">...
所以我在DataTemplate
我的Listbox
ItemTemplate
. 任何想法如何Listbox
从按钮单击中获取项目的索引?我看不到抓住按钮的父母。
<ListBox.ItemTemplate>
<DataTemplate DataType="{x:Type local:Img}">
<Button Click="lstButton_Click">...
private void lstButton_Click(object sender, RoutedEventArgs e)
{
Button button = sender as Button;
int index = _myListBoxName.Items.IndexOf(button.DataContext);
//or try this
index = _myListBoxName.ItemContainerGenerator.IndexFromContainer(button.DataContext);
}
您可以在视图模型中添加一个Index
属性,并在将视图模型对象添加到集合中时对其进行设置。然后您可以在事件处理程序中访问它。
private void lstButton_Click(object sender, RoutedEventArgs e)
{
Img t = (sender as Button).DataContext as Img
//Access t.Index here
}