我怎样才能将命令发送到带有子项的MenuItem

时间:2016-03-25 11:12:44

标签: wpf command menuitem

单击带有子项的MenuItem时,不会触发命令。 命令很有约束力。

没有子项命令的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上使用Command with child?

谢谢你

1 个答案:

答案 0 :(得分:0)

当您在MenuItem中单击时,首先检查它是否具有子元素,如果为true,则显示子元素,如果为false则运行命令。

但是你可以使用触发器:

     <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>

该代码适用于我。