Wpf 我怎样才能在MenuItem带孩子的地方启动命令

Wpf 我怎样才能在MenuItem带孩子的地方启动命令,wpf,command,menuitem,Wpf,Command,Menuitem,单击带有子菜单项的菜单项时,不触发命令。 命令具有很好的约束力 无子命令的MenuItem运行正常 <MenuItem Header = "TopMenu" Command = "{Binding TopCommand}"> <!-- Not firing --> <MenItem Header = "ChildMenu" Command = "{Binding ChildCommand}" /> <!-- Fire --> </Me

单击带有子菜单项的菜单项时,不触发命令。 命令具有很好的约束力

无子命令的MenuItem运行正常

<MenuItem Header = "TopMenu" Command = "{Binding TopCommand}"> <!-- Not firing -->
    <MenItem Header = "ChildMenu" Command = "{Binding ChildCommand}" /> <!-- Fire -->
</MeuItem>

所以,我使用交互…而不是开火

<MenuItem Header = "TopMenu" Command = "{Binding TopCommand}"> <!-- Not firing -->
    <i:Interaction.Triggers>
        <i:EventTrigger EventName="PreviewMouseLeftButtonDown">
            <i:InvokeCommandAction Command = "{Binding TopCommand}"/>
        </I:EventTrigger>
    <i:Interaction.Trigger>
    <MenItem Header = "ChildMenu" Command = "{Binding ChildCommand}" /> <!-- Fire -->
</MeuItem>

如何在MenuItem上对子项使用命令


感谢您

当您在菜单项中单击时,它首先检查是否有子元素,如果为真,则显示子元素如果为假,则运行命令

但是,您可以使用触发器:

     <Menu>
         <MenuItem Header="Father">
            <i:Interaction.Triggers>
                <i:EventTrigger EventName="PreviewMouseLeftButtonDown">
                    <i:InvokeCommandAction Command = "{Binding FatherCommand}"/>
                </i:EventTrigger> 
            </i:Interaction.Triggers>
            <MenuItem Header="Child" Command="{Binding ChildCommand}"></MenuItem>
         </MenuItem>
     </Menu>


该代码适合我。

使用交互触发方法已经是我的问题了。但是它不起作用。但是您的代码有一些错误