BackgroundWorkerMVVM アプリケーションに応答性の高い UI を実装しようとしているので、UI をブロックしないように、すべてのコマンド ハンドラーを自動的に実行するように選択しました。
しかし同時に、バックグラウンドで実行中にユーザーが同じコマンドを実行できるようにしたくありません。解決策は明らかです:
Executedハンドラーが呼び出されたら、CanExecuteハンドラーを返すfalseBackgroundWorker非同期を開始するBackgroundWorker終了したら、CanExecuteハンドラーtrueを再び戻します。
問題は、ステップ1の後とステップ3の後にWPFに通知する必要があり、CanExecute変更が必要であることです。を呼び出すことで実行できることはわかっていますがCommandManager.InvalidateRequerySuggested、これにより、CanExecute他のすべてのコマンドのハンドラーも再クエリされます。たくさんのコマンドを持っているのは良くありません。
特定のコマンド、つまり現在実行中のコマンドの再クエリを要求する方法はありますか?
ティア