2

RoutedUICommand次のように、コードビハインドからカスタムを手動で実行する場合:

MyCommands.MyCommand.Execute(parameter, target)

最初にメソッドを呼び出す必要がありますかCanExecute、それともメソッド内ですでに実行されていExecuteますか?

4

3 に答える 3

10

CanExecute が Execute で呼び出されると想定しないでください。ICommand のインターフェイスは、Execute が呼び出されたときに CanExecute を呼び出すことを意味しないため、CanExecute が true の場合にのみ実行することが重要な場合は、自分で確認してください。

また、RoutedUICommand の逆コンパイルされたコードをスキャンすると、Execute 内で CanExecute をチェックする場所がどこにもありません。

実際には、Execute/CanExecute をいつ呼び出すかを決定するのは消費者の責任です。

于 2009-06-15T14:34:07.590 に答える
1

必要に応じて CanExecute を手動で呼び出す必要があります。Execute はチェックしません。

于 2009-06-15T14:34:32.520 に答える
0

CanExecuteメソッドによって呼び出されると想定しないでくださいExecute。その動作を強制するものは何もないためです。だからIMOはあなた自身を呼ぶべきCanExecuteです

于 2009-06-15T14:36:03.937 に答える