Я создаю приложение WPF и имею значок в системном трее с контекстным меню. Для пунктов меню я хочу использовать команды WPF, но когда я их назначаю, они всегда отображаются серым цветом, хотя (в других местах разрешены (такие же) команды.
)
MenuItem menuItem = new MenuItem();
menuItem.Header = "Exit";
menuItem.Command = CustomCommands.ExitApplication;
Systray.AddMenuItem(menuItem);
Это прекрасно работает, когда я назначаю события щелчка, и я пытался создать метод CanExecute для команды, который всегда устанавливает для CanExecute значение true, но это тоже не помогает. Кто-нибудь понял, почему пункты меню отключены?
Обновление: как предложено, я добавил привязку команды к контекстному меню. Это привело к тому, что это работает, но только после того, как вы нажали на меню, то есть, сначала пункты меню были выделены серым, но когда вы щелкнули где-то в меню, опции стали активными.
Чтобы решить эту проблему, я добавил после добавления пунктов меню в контекстное меню следующее:
CommandManager.InvalidateRequerySuggested();