CommandBindingのCanExecuteのデバッグ
-
05-07-2019 - |
質問
NavigationCommands.RefreshCommand
にバインドされた Button
を持つユーザーコントロールがあります。コマンドのハンドラーは親コントロールにあります。ハンドラーの CanExecute
は次のようになります。
e.CanExecute = !IsConnecting; // IsConnecting is a Dependency Property
何らかの理由で、ウィンドウをクリックするまで Button
は無効のままです。
Button
をクリックして実行すると( IsConnecting
が一時的にtrueに設定されます)、ボタンが正しく無効になりますが、実行されませんウィンドウ内で別のイベント(クリックなど)が発生するまでボタンを有効にします。
ボタンにバインドされているコマンドのCanExecuteハンドラーをデバッグするために使用できるツールやトリックはありますか?
解決
ボタンのCanExecuteは、GUIで何かが発生した場合にのみ呼び出されます。 IsConnectingはバックグラウンドで変更されるため、WPFはコントロールを更新しません。
WPFでCanExecute呼び出しを強制的に更新するには CommandManager.InvalidateRequerySuggested
所属していません StackOverflow