2

Buttonにバインドされたユーザー コントロールがありますNavigationCommands.RefreshCommand。コマンドのハンドラーは、親コントロールにあります。ハンドラーは次のCanExecuteようになります。

e.CanExecute = !IsConnecting; // IsConnecting is a Dependency Property

何らかの理由でButton、ウィンドウをクリックするまで無効のままになります。

をクリックしButtonて実行すると(IsConnecting一時的にtrueに設定されます)、ボタンは正しく無効になりますが、ウィンドウで別のイベント(クリックなど)が発生するまでボタンは有効になりません。

ボタンにバインドされているコマンドの CanExecute ハンドラーをデバッグするために使用できるツールやトリックはありますか?

4

1 に答える 1

4

ボタンの CanExecute は、GUI で何かが発生したときにのみ呼び出されます。バックグラウンドで IsConnecting が変更されるため、WPF はコントロールを更新しません。

WPF に CanExecute 呼び出しを強制的に更新させるにはCommandManager.InvalidateRequerySuggested

于 2009-11-27T07:47:06.360 に答える