是否可以添加" Executed = *"到ApplicationCommands。*?

时间:2014-08-23 10:58:34

标签: c# xaml dockpanel

我写了一些XAML,这是我提出的菜单:

<Menu Width="Auto" Height="32" DockPanel.Dock="Top">
    <MenuItem Header="Delete Row"  Command="ApplicationCommands.Delete" />
    <MenuItem Header="Save Changes" Command="ApplicationCommands.Save"/>
</Menu>

现在我已经注意到ApplicationCommands.Delete很好地完成了它的工作,ApplicationCommands.Save却没有。 我想我应该制作一个保存这些更改的方法,但出于某种原因我无法添加Executed=""属性? 所以它可能是这样的:

<MenuItem Header="Save Changes" Command="ApplicationCommands.Save" Executed="SaveMethod"/>

1 个答案:

答案 0 :(得分:0)

根据您的真实目的,这可能有效:

<Menu Width="Auto" Height="32" DockPanel.Dock="Top">
    <Menu.CommandBindings>
        <CommandBinding Command="ApplicationCommands.Save"
                        Executed="SaveMethod"
                        CanExecute="CanSaveMethod"/>
    </Menu.CommandBindings>
    <MenuItem Header="Delete Row"  Command="ApplicationCommands.Delete" />
    <MenuItem Header="Save Changes" Command="ApplicationCommands.Save"/>
</Menu>

或者您可能需要通过ApplicationCommands.SaveCommandManager.RegisterClassCommandBinding声明一个全局处理程序。