如果MenuItem没有子MenuItem,它可以正常工作,如下所示:
<MenuItem Header="Open" Command="{Binding OpenCommand}"/>
但是,当我向它添加一个子MenuItem时,命令不起作用:
<MenuItem Header="Open" Command="{Binding OpenCommand}">
<MenuItem />
</MenuItem>
点击事件也不会像这样:
<MenuItem Header="Open" Click="MenuItem_Click">
<MenuItem />
</MenuItem>
当我尝试将Command添加到标题时:
<MenuItem>
<MenuItem.Header>
<TextBlock>
<TextBlock.InputBindings>
<MouseBinding Gesture="LeftClick" Command="{Binding OpenCommand}"/>
</TextBlock.InputBindings>
Open
</TextBlock>
</MenuItem.Header>
<MenuItem />
</MenuItem>
命令有效但子MenuItem不显示。
任何帮助都会受到赞赏,请原谅我的半生不熟的英语。
答案 0 :(得分:1)
如果您有子MenuItems
,则使用点击事件(并且用户期望)来显示子菜单。要对子菜单打开做出反应,请使用事件SubmenuOpened
。
如果确实希望能够打开子菜单并点击“打开”,您可以使用此片段,但我真的不建议:
<MenuItem SubmenuOpened="MenuItem_OnSubmenuOpened"> <!-- handle sub menu opening if desired -->
<MenuItem.Header>
<Button Click="Button_Click">Open V2</Button> <!-- handle click on "Open" if desired; doesn't open sub menu! -->
</MenuItem.Header>
<MenuItem />
</MenuItem>
请注意,我已经通过“打开”测试了这个,而不是顶级菜单项。