RibbonTab内に約5つのRibbonGroupがあり、各リボングループには約3〜5のコマンドが含まれています。すべてを画面に表示するために、WPFリボンコントロールはいくつかのRibbonGroupをドロップダウンメニューに自動的に折りたたむ。ここまで特別なことは何もありません。
ドロップダウンが最初に開かれるまで、折りたたまれたRibbonGroups内のコマンドのCanExecuteイベントが発生しないことがわかります。(これはパフォーマンスを向上させるためかもしれません-つまり、コマンドが表示されていない限り、CanExecuteを起動する必要があります!?)
私のアプリケーションでは、RibbonGroupでコマンドが有効になっていない場合(つまり、CanExecuteがfalseの場合)、そのRibbonGroupを非表示にするロジックです。ただし、すべてのCanExecuteが起動されない限り、有効になっているコマンドの数(またはすべて)がわかりません。
これはRibbonGroupの制限ですか、それともこの動作は仕様によるものですか?コマンドが折りたたまれたRibbonGroupにあるかどうかに関係なく、すべてのCanExecuteを少なくとも1回手動で実行するための回避策はありますか。
ところで、CommandManager.InvalidateRequerySuggested()
ここでも役に立ちません。