2

所以我在DataTemplate我的Listbox ItemTemplate. 任何想法如何Listbox从按钮单击中获取项目的索引?我看不到抓住按钮的父母。

<ListBox.ItemTemplate>
            <DataTemplate DataType="{x:Type local:Img}">
                <Button Click="lstButton_Click">...
4

2 回答 2

12
     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);
     }
于 2014-01-23T09:41:17.003 回答
0

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

private void lstButton_Click(object sender, RoutedEventArgs e)
    {
        Img t = (sender as Button).DataContext as Img
        //Access t.Index here
    }
于 2013-06-12T06:28:43.987 回答