【问题标题】:How can i fire command where MenuItem with child我如何在带有子项的 MenuItem 处触发命令
【发布时间】:2016-07-13 03:27:31
【问题描述】:

单击带有子项的 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?

谢谢你

【问题讨论】:

    标签: wpf command menuitem


    【解决方案1】:

    当你点击一个 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>
    

    该代码对我有用。

    【讨论】:

    • 使用交互触发方法已经在我的问题中了。但它不起作用。
    • 但是你的代码有一些错误&lt;/I:EventTrigger&gt;&lt;i:Interaction.Trigger&gt;
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-04
    • 1970-01-01
    • 2011-10-09
    • 2016-02-29
    相关资源
    最近更新 更多