我有一个包含菜单和子菜单的应用程序。我已经将Appliocation命令附加到了某些子菜单项,例如剪切,复制和粘贴。 我还有一些其他菜单项没有应用程序命令。 如何为这些子菜单项添加自定义命令绑定? 我已经阅读了这篇文章,但无法将事件附加到我的子菜单项。
我使用放置在Window1类(或窗口类恰好被命名的任何类)之后的静态类,在其中创建RoutedUICommand类的实例:
public static class Command { public static readonly RoutedUICommand DoSomething = new RoutedUICommand("Do something", "DoSomething", typeof(Window1)); public static readonly RoutedUICommand SomeOtherAction = new RoutedUICommand("Some other action", "SomeOtherAction", typeof(Window1)); public static readonly RoutedUICommand MoreDeeds = new RoutedUICommand("More deeds", "MoreDeeeds", typeof(Window1)); }
使用Window1类所在的名称空间在窗口标记中添加名称空间:
xmlns:w="clr-namespace:NameSpaceOfTheApplication"
现在,我可以像应用程序命令一样为命令创建绑定:
<Window.CommandBindings> <CommandBinding Command="ApplicationCommands.Open" Executed="CommandBinding_Open" /> <CommandBinding Command="ApplicationCommands.Paste" Executed="CommandBinding_Paste" /> <CommandBinding Command="w:Command.DoSomething" Executed="CommandBinding_DoSomething" /> <CommandBinding Command="w:Command.SomeOtherAction" Executed="CommandBinding_SomeOtherAction" /> <CommandBinding Command="w:Command.MoreDeeds" Executed="CommandBinding_MoreDeeds" /> </Window.CommandBindings>
并使用菜单中的绑定,例如:
<MenuItem Name="Menu_DoSomething" Header="Do Something" Command="w:Command.DoSomething" />