C# 提示/想法如何获得通用上下文菜单?
我想用mvvm在wpf中开发一个通用的上下文菜单。我希望在具有样式为ItemContainerStyle=“{DynamicResource ListViewItemContainerStyle}”的listview的每个viewModel中显示它 关联菜单将有两个选项,将根据每个视图模型中的某些约束启用或不启用。是否启用将由命令的canexecute管理 如果我将它放在listview中的每个视图中,我没有问题,但是我希望它只放在每个listview之外的一个位置。我试图将其放入ListViewItemContainerStyle,但它显示了一个异常“无法将System.Windows.Controls.ContextMenu添加到System.Object”。这是我的代码片段C# 提示/想法如何获得通用上下文菜单?,c#,.net,wpf,mvvm,contextmenu,C#,.net,Wpf,Mvvm,Contextmenu,我想用mvvm在wpf中开发一个通用的上下文菜单。我希望在具有样式为ItemContainerStyle=“{DynamicResource ListViewItemContainerStyle}”的listview的每个viewModel中显示它 关联菜单将有两个选项,将根据每个视图模型中的某些约束启用或不启用。是否启用将由命令的canexecute管理 如果我将它放在listview中的每个视图中,我没有问题,但是我希望它只放在每个listview之外的一个位置。我试图将其放入ListVie
<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>
.
.
.
.
.
.
.
.
.
你知道怎么做吗?试试这个:
<ContextMenu x:Shared="False" x:Key="ListViewContextMenu>
<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>
<Style x:Key="ListViewItemContainerStyle"
TargetType="ListViewItem">
<Setter Property="ContextMenu" Value="{StaticResource ListViewContextMenu}"/>
现在我的问题是绑定到模型,而不是viewmodel,因此命令不会执行。非常感谢。