WPF上下文菜单和ListView

Joe*_*Joe 5 wpf listview contextmenu

好的,希望这很简单,但由于某种原因,我找不到一个直接的答案,我对WPF还不熟悉,但还不知道该怎么做.

我有一个listview,它被绑定到要显示的可观察对象集合.我想要一个带有一堆选项的上下文菜单.上下文菜单中的选项与列表中单击的特定对象(删除,导出等)相关.

所以我需要用户在listview中右键单击的对象作为参数传递给上下文菜单执行的命令.

我该怎么做呢?

编辑:我应该提到我更喜欢一个大多数(如果不是完全)xaml的解决方案 - 我试图避免在代码隐藏中使用重要的代码.如果这是唯一的方法,但...

进一步编辑:我忘记提及的更多细节很重要.我想要执行的命令是绑定到我的用户控件的数据上下文的对象,它不在列表视图中的对象上.因此,我需要将列表视图中的上下文菜单绑定到用户控件的数据上下文中的命令,并将listview项作为参数传递到该命令中.

Ray*_*rns 4

这取决于您的ContextMenu模板是单个项目的一部分,还是作为一个整体附加到列表框。

如果您ContextMenu使用 DataTemplate 将您的内容附加到列表中的项目(这通常是最好的方法),则DataContextMenuItem设置,因此您需要做的就是:

<MenuItem ... CommandParameter="{Binding}" />
Run Code Online (Sandbox Code Playgroud)

另一方面,如果您作为一个整体ContextMenu附加到ListBox,则您需要访问SelectedItem的属性ListBox

<MenuItem ... CommandParameter="{Binding SelectedItem, RelativeSource={RelativeSource FindAncestor,ListBox,1}} />
Run Code Online (Sandbox Code Playgroud)