从按钮单击获取列表框项目索引

时间:2013-06-12 02:59:41

标签: wpf listbox itemtemplate

所以我在DataTemplate Listbox的{​​{1}}中使用了一个按钮。如何从按钮点击中获取ItemTemplate项目的索引?我看不到抓住按钮的父母。

Listbox

2 个答案:

答案 0 :(得分:11)

     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);
     }

答案 1 :(得分:0)

您可以在视图模型中添加Index属性,并在将视图模型对象添加到集合中时进行设置。然后,您可以在事件处理程序中访问它。

private void lstButton_Click(object sender, RoutedEventArgs e)
    {
        Img t = (sender as Button).DataContext as Img
        //Access t.Index here
    }