wpf - 在包含按钮的 ListView 中,如何获取单击的索引?

标签 wpf listview button

我有一个 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/

相关文章:

WPF MVVM 取消 Window.Closing 事件

C# + XAML - UI 在更改后没有得到更新

WPF WebBrowser 控件 - 没有 LinkClicked 事件

java - 空指针异常是什么原因

jquery - 如何在 .show jquery 之后添加时间延迟

javascript - "ease"代表什么?

wpf - 依赖注入(inject)不起作用

android - 在 ListVIew 中使用 'changing' LayoutTransition 类型无效

android - - 如何修复它 : Incorrect use of ParentDataWidget?

java - 在android中存储和获取共享首选项的值