我有一个 ListView
仅包含按钮。我想做的很简单,我想拥有已单击按钮的索引。列表的计数从 0 到 100 不等,所以当用户点击按钮 6 时,我需要这个数字进行处理。
我定义了我的 ListView
像这样:
<ListView Name="myListView"
ItemsSource="{Binding Source={StaticResource myDataModel},
Path=StatusList,
Mode=OneWay}">
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"></StackPanel>
</ItemsPanelTemplate>
</ListView.ItemsPanel>
<ListView.ItemTemplate>
<DataTemplate>
<Button Mode=OneWay}"
Click="Button_Click"/>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
我最初的想法是创建一个带有 ID 的自定义按钮并将索引绑定(bind)到 ID,但我不知道该怎么做。
我试过:
int a = myListView.Items.IndexOf(((Button)sender));
在事件处理程序中,但它总是返回 0xffffffff
谁能告诉我如何获取点击按钮的索引?
最佳答案
使用 DataContext 查找项目:
var item = (sender as FrameworkElement).DataContext;
int index = myListView.Items.IndexOf(item);
关于wpf - 在包含按钮的 ListView 中,如何获取单击的索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8384328/