我正在创建一个 WPF 应用程序,并有一个带有上下文菜单的系统托盘图标。对于我想使用 WPF 命令的菜单项,但是当我分配它们时,即使在其他地方启用了(相同的)命令,它们也总是灰色的。
MenuItem menuItem = new MenuItem();
menuItem.Header = "Exit";
menuItem.Command = CustomCommands.ExitApplication;
Systray.AddMenuItem(menuItem);
当我分配单击事件并且我尝试为始终将 CanExecute 设置为 true 的命令创建 CanExecute 方法时,它工作正常,但这也无济于事。任何人都知道为什么菜单项被禁用?
更新:按照建议,我在上下文菜单中添加了一个命令绑定。这样做的效果是,它只有在您单击菜单后才能起作用,即,起初菜单项是灰色的,但是一旦您单击菜单上的某个位置,选项就会启用。
为了解决这个问题,在将菜单项添加到上下文菜单后,我调用了以下方法:
CommandManager.InvalidateRequerySuggested();