我的应用程序包含一个支持一组命令的TreeView,但是这些命令可能会在菜单之间移动,只出现在某些菜单上而不出现在其他菜单上,或者在多个菜单之间共享等。
我知道我在编译时所支持的所有命令集合,因此理论上我可以在我的部分中为每个命令定义一个具有x:Key属性的
我知道我在编译时所支持的所有命令集合,因此理论上我可以在我的部分中为每个命令定义一个具有x:Key属性的
<ContextMenu ItemsSource="{Binding MenuItemList}">
<ContextMenu.ItemTemplate>
<DataTemplate>
<MenuItem Header="{Binding Path=Name}" Command="{Binding MyCommand}" />
</DataTemplate>
</ContextMenu.ItemTemplate>
</ContextMenu>
不要使用Itemtemplate,而是为上下文菜单提供ItemContainer样式。这样,您就可以避免在上面的评论中提到的将菜单项放在另一个菜单项内的问题。
最初的回答:
提供ItemContainer样式以供上下文菜单使用,而不是使用Itemtemplate。这样一来,您就可以避免像上面评论中所提到的将菜单项放在另一个菜单项内的问题。
`<ContextMenu.ItemContainerStyle>
<Style TargetType="{x:Type MenuItem}">
<Setter Property="Header" Value="{Binding Name}"/>
</Style>
</ContextMenu.ItemContainerStyle>`