WPF UIでは、次のコードを介してxamlで参照するRoutedCommandsを使用します。
Command="viewModel:MessageListViewModel.DeleteMessagesCommand"
ViewModelクラスへのこの静的リンクは好きではありません。これは、カスタムICommand実装を作成し、次のような構文を使用するほど良くないと思います。
Command="{Binding DeleteMessagesCommand}"
作成した後、私が行ったことの1つの大きな欠点に気付きました。RoutedCommandsはCommandManagerを利用し、(私には完全に不透明な方法で)CommandManager.RequerySuggestedイベントを起動して、CanExecuteメソッドが自動的に再クエリされるようにします。私のカスタム実装に関しては、CanExecuteは起動時に一度だけ起動され、その後は二度と起動されません。
誰かがこれに対するエレガントな解決策を持っていますか?