WPF上下文菜单和列表视图

WPF上下文菜单和列表视图,wpf,listview,contextmenu,Wpf,Listview,Contextmenu,好的,希望这很简单,但由于某种原因,我找不到一个直接的答案,我对WPF还不够熟悉,不知道如何做 我有一个listview,它绑定到一个可观察的对象集合来显示。我想要一个有很多选项的上下文菜单。上下文菜单中的选项与列表中单击的特定对象相关(如删除、导出等) 因此,我需要将用户在我的listview中右键单击的对象作为参数传递给上下文菜单执行的命令 我该怎么做 编辑:我应该提到,我更喜欢一个主要(如果不是全部)是xaml的解决方案——我试图避免在代码背后包含重要的代码。如果那是唯一的办法 进一步编辑

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

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

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

我该怎么做

编辑:我应该提到,我更喜欢一个主要(如果不是全部)是xaml的解决方案——我试图避免在代码背后包含重要的代码。如果那是唯一的办法


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

这取决于您的
上下文菜单是否是单个项的模板的一部分,或者是否作为一个整体附加到列表框

如果使用数据模板将
ContextMenu
附加到列表中的项目(这通常是最好的方法),则
MenuItem
上的
DataContext
已设置,因此您只需执行以下操作:

<MenuItem ... CommandParameter="{Binding}" />
<MenuItem ... CommandParameter="{Binding SelectedItem, RelativeSource={RelativeSource FindAncestor,ListBox,1}} />