wpf中Menu菜单项多个新建项如何处理
MenuResources.xaml 资源文件中定义的菜单有多个新建的项 command对应的都是新建的命令New
- C# code
<ContextMenu x:Key="AddMenu"> <MenuItem Header="新建文件夹" Command="ApplicationCommands.New"> </MenuItem> <MenuItem Header="新建文本文件" Command="ApplicationCommands.New"> </MenuItem> <MenuItem Header="新建word" Command="ApplicationCommands.New"> </MenuItem></ContextMenu>
显示的窗体里定义
- C# code
<Window.CommandBindings> <CommandBinding Command="ApplicationCommands.New" CanExecute="FolderCanAdd" Executed="AddFolder" /> <CommandBinding Command="ApplicationCommands.New" CanExecute="TxtCanAdd" Executed="AddTxt" /> <CommandBinding Command="ApplicationCommands.New" CanExecute="WordCanAdd" Executed="AddWord" /> </Window.CommandBindings>
由于定义了相同的Command=ApplicationCommands.New 在使用CanExecute判断的时候,几个菜单项的判断互相混合了 。
不知道如何处理这种情况好
[解决办法]
回你这个问题真是够累的,以后问问题把想问的都一次问清楚.
InitializeComponet()之后,你就可以拿Resource了.
这时可以注册事件
- C# code
public MainWindow() { InitializeComponent(); ContextMenu menu = this.Resources["AddMenu"] as ContextMenu; menu.ContextMenuOpening += (s, e) => { //to do }; }