WPF アプリを作成していて、コンテキスト メニュー付きのシステム トレイ アイコンがあります。メニュー項目には WPF コマンドを使用したいのですが、それらを割り当てると、(同じ) コマンドが他の場所で有効になっているにもかかわらず、常にグレー表示されます。
MenuItem menuItem = new MenuItem();
menuItem.Header = "Exit";
menuItem.Command = CustomCommands.ExitApplication;
Systray.AddMenuItem(menuItem);
クリック イベントを割り当てると正常に動作し、CanExecute を常に true に設定するコマンドの CanExecute メソッドを作成しようとしましたが、それも役に立ちません。メニュー項目が無効になっている理由を知っている人はいますか?
更新: 提案どおり、コンテキスト メニューにコマンド バインドを追加しました。これには、メニューをクリックした後にのみ機能するという効果がありました。つまり、最初はメニュー項目がグレー表示されていますが、メニューのどこかをクリックするとオプションが有効になります。
この問題を解決するために、メニュー項目をコンテキスト メニューに追加した後、次のように呼び出しました。
CommandManager.InvalidateRequerySuggested();