这个需要重写ListView的Style。
首先在ListView的Style对应位置增加一个ContextMenu的声明:
<!--ListViewItem的菜单绑定-->
<ContextMenu x:Key="ListViewItemContextMenu" ItemsSource="{Binding MenuItems}"/>
ItemsSource就是菜单的绑定源。
接下来ListView的Style:
<Style x:Key="ListViewItemStyle" TargetType="{x:Type ListViewItem}">
<!--其他东西省略-->
<Setter Property="ContextMenu" Value="{StaticResource ListViewItemContextMenu}"/>
</Style>
这里就是设置ContextMenu为ListViewItemContextMenu。
以上代码完成后,只要ListView的Style设置为ListViewItemStyle,数据绑定的时候就会找MenuItems这一项,这一项扔一个ObservableCollection<>类型就好了。