我有一个按钮,单击时会显示一个 ContextMenu。在这个 ContextMenu 中,我有 MenuItems。如果左键单击 MenuItem,它应该执行一个命令。到目前为止,所有这些行为都可以使用以下代码正常工作:
<Button.ContextMenu>
<ContextMenu>
<ContextMenu.ItemContainerStyle>
<Style TargetType="{x:Type MenuItem}">
<Setter Property="Command" Value="{Binding StartContextMenuCommand}" />
<Setter Property="CommandParameter" Value="{Binding RelativeSource={RelativeSource Self}, Path=Header}" />
</Style>
</ContextMenu.ItemContainerStyle>
<MenuItem Header="{x:Static Name:ContextMenuStartNames.1}"/>
<MenuItem Header="{x:Static Name:ContextMenuStartNames.2}"/>
<MenuItem Header="{x:Static Name:ContextMenuStartNames.3}"/>
<MenuItem Header="{x:Static Name:ContextMenuStartNames.4}"/>
</ContextMenu>
</Button.ContextMenu>
现在我希望每个菜单项都有一个带有一个 MenuItem 的上下文菜单。由于左键单击会调用 MenuItem 上的命令,因此我希望右键单击行为显示以下 ContextMenu:
<ContextMenu>
<MenuItem Header="Set Default"></MenuItem>
</ContextMenu>
我试着把它作为一个设置器放在 ItemContainerStyle 中。我还尝试将其作为 MenuItem 的 ContextMenu,但我的任何尝试都没有奏效。我确信我可以想出一个 hacky 方法来做到这一点,但我想让它保持干净和简单。