メイン ウィンドウの RelayCommand の CanExecute を、おそらく存在しない子ウィンドウにバインドしようとしています。どうすればいいですか?
現在私は持っています:
<MenuItem Header="_Compact"
Command="{Binding Path=CurrentChildViewModel.CompactCommand}"
IsEnabled="{Binding CurrentChildViewModel.CanExecuteCompactCommand,
Converter={StaticResource NullToBooleanConverter}}"/>
ただし、コンバーターは CurrentChildViewModel (および CanExecuteCompactCommand ではなく) で動作する必要があるため、これは機能していないようですが、その CanExecuteCompactCommand も何らかの方法で含める必要があります。
CurrentChildViewModel != null および CurrentChildViewModel.CanExecuteCompactCommand() が true を返す場合にのみ、メニュー項目を有効にしたい。
(理由: CurrentChildViewModel はウィンドウの ViewModel であり、開くかどうかを指定できます。開いていない場合は、メニュー項目を無効にする必要があります。また、開いている場合は、コンパクト コマンドの CanExecute メソッドでコンパクト コマンドが有効かどうかを確認します。これは、ChildView (モデル) のリストビューで少なくとも 2 つの項目が選択されているようなものです)。
誰でも助けてもらえますか?