質問

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top