如果上下文菜单在 xaml 中是“硬编码”的,那么添加子菜单很容易。例如:
<ContextMenu>
<MenuItem Header="Comm1" Command="{Binding Blabla1}">
<MenuItem Header="SubComm1" Command="{Binding Blabla2}"></MenuItem>
</MenuItem>
<MenuItem Command="Comm2"></MenuItem>
<MenuItem Command="Comm3"></MenuItem>
</ContextMenu>
这意味着,ContextMenu 具有三个元素(Comm1、Comm2 和 Comm3),而 Comm1 具有子菜单 SubComm1。
我使我的 ContextMenu 更加灵活:
<ContextMenu ItemsSource="{Binding ContextMenuItemsSource}">
<ContextMenu.ItemContainerStyle>
<Style TargetType="MenuItem">
<Setter Property="Header" Value="{Binding ContextMenuCommandHeader}"></Setter>
<Setter Property="Command" Value="{Binding ContextMenuCommand}"></Setter>
</Style>
</ContextMenu.ItemContainerStyle>
</ContextMenu>
基本上我可以在 ContextMenu 中有任意数量的元素,并且任何元素都可以有任何命令。如何将子菜单添加到 ContextMenu 元素?