1
コマンドを使用すると、コマンドの実行元が自動的に無効になるため、コマンドのソース(通常はボタン)が無効になるため便利です。WPFコマンド/コマンドバインディングに基づいてコントロールを無効にする
明らかに、この機能はコマンドソースではないコントロールには使用できません。 ListBox
。
非コマンドソースコントロールでこの機能を有効にする最良の方法は何ですか。 Button
と
- ラップ
ListBox
をして何のクロムがないように、ボタンのControlTemplate
を変更します。私は、ソリューションのカップルを考えました。 - 見えない
Button
を作成し、Button
- の
IsEnabled
プロパティにListBox
のIsEnabled
プロパティをバインドICommandSource
を実装ListBox
の子孫を作成します。
もっとエレガントな方法がありますか?
お返事ありがとうございます。どこからCanExecuteメソッドが来るのですか? –
私はICommand.CanExecuteメソッド(http://msdn.microsoft.com/en-us/library/system.windows.input.icommand.canexecute.aspx)を参照しています。これは、WPFがコマンド実行可能か否かを判断する。 –
入手しました。誰がICommand.CanExecuteを呼び出すのでしょうか。コマンドがボタンにアタッチされている場合、WPFはジョブを行います(私のポイント#2)。さもなければ、これはどのように機能しますか? –