我想用 mvvm 在 wpf 中开发一个通用的上下文菜单。我想在每个具有样式列表视图的视图模型中显示它:ItemContainerStyle =“{DynamicResource ListViewItemContainerStyle}”。
上下文菜单将有 2 个选项,这些选项将根据每个视图模型中的某些约束启用或不启用。启用与否将由命令的 canexecute 管理。
如果我把它放在列表视图内的每个视图中,我没有问题,但我希望它只放在每个列表视图之外的一个地方。我试图将它放在 ListViewItemContainerStyle 中,但它显示异常“无法将 System.Windows.Controls.ContextMenu 添加到 System.Object”。这是我的代码片段
<Style x:Key="ListViewItemContainerStyle"
TargetType="ListViewItem">
.
.
.
<Setter Property="ContextMenu">
<Setter.Value>
<ContextMenu>
<MenuItem Command="{Binding Path=Command}"
CommandParameter="AddNew">
<MenuItem.Header>
<TextBlock Text="{x:Static p:TextResources.New}" />
</MenuItem.Header>
</MenuItem>
<MenuItem Command="{Binding Path=Command}"
CommandParameter="Delete">
<MenuItem.Header>
<TextBlock Text="{x:Static p:TextResources.Delete}" />
</MenuItem.Header>
</MenuItem>
</ContextMenu>
</Setter.Value>
</Setter>
.
.
.
知道如何做到这一点吗?