好的,希望这很简单,但由于某种原因,我找不到直接的答案,我对WPF还不熟悉,但还不知道该怎么做。
我有一个listview,它被绑定到要显示的可观察对象集合。我想要一个带有一堆选项的上下文菜单。上下文菜单中的选项与列表中的特定对象相关(例如删除,导出等)。
所以我需要用户在listview中右键单击的对象作为参数传递给上下文菜单执行的命令。
我该怎么做?
编辑:我应该提到我更喜欢一种大多数(如果不是完全)xaml的解决方案 - 我试图避免在代码隐藏中使用重要的代码。如果那是这样做的唯一方法......
进一步修改:我忘记提及的更多详情非常重要。我想要执行的命令是绑定到我的用户控件的数据上下文的对象,它不在列表视图中的对象上。所以我需要将列表视图中的上下文菜单绑定到用户控件的数据上下文中的命令,并将listview项作为参数传递给该命令。
答案 0 :(得分:4)
这取决于您的ContextMenu
是否是单个项目模板的一部分,或者它是否作为整体附加到ListBox。
如果您使用DataTemplate将ContextMenu
附加到列表中的项目(这通常是最好的方法),DataContext
上的MenuItem
已设置所以你需要做的就是:
<MenuItem ... CommandParameter="{Binding}" />
另一方面,如果您的ContextMenu
作为一个整体附加到ListBox
,则需要访问SelectedItem
的{{1}}属性:< / p>
ListBox