1

ボタンの Command 属性を ICommand オブジェクトにバインドして、Click イベントと有効/無効ステータスの両方を処理する方法が気に入っています。自分のコマンド / CommandBinding クラス / MarkerExtension / 添付のカスタム DependencyProperty / (その他のもの) を使用して、コマンド バインディングが他のターゲット属性にも影響する方法はありますか?

たとえば、Visible ブール プロパティを持つ独自の派生コマンドを使用するとします。ボタンの Command 属性をバインドするときに、CanExecute メソッドが IsEnabled プロパティに作用するのと同じように、コマンド オブジェクトの Visible プロパティがボタンの可視性に作用するようにします (ボタンの IsEnabled プロパティをバインドする必要はありません)。

そのようなことを達成する方法はありますか?

4

2 に答える 2

1

はい、できます。カスタム ロジックを使用し、wpf ハッキングに関する知識があれば、カスタマイズされたコマンドを Button に配置して、有効状態と無効状態を切り替えるだけでなく、他の用途にも使用できます。

同時に、いいえ、それはできません。コマンドはユーザー入力で使用されるため、Button.Clicked でコマンドを実行するのは理にかなっていますが、可視性を変更するためだけにコマンドをアタッチすることは、wpf の世界ではあまり意味がありません。可視性を変更したい場合、wpf はコマンドの代わりに単純なバインディングを提供します。とにかく、可視性の変更は実際にはユーザー入力ではありません。コマンドはユーザー入力に対してのみ使用し、それ以外はすべてバインディングを使用します。

さらに、Xj からの投稿を読んでください。Button.Visibility プロパティで Binding を適切に使用する方法が説明されています。

于 2013-10-11T23:09:56.393 に答える