2012-02-19 5 views
5

私は、次のコードに気づい:CanExecuteShowTimbresCommandが自動的にIsEnabledプロパティにバインドされていることを意味コマンドをバインドするときにIsEnabledをオプションでバインドしていますか?

<Button Content="_Timbres..." 
    Command="{Binding Path=ShowTimbresCommand}"> 

<Button Content="_Timbres..." 
    Command="{Binding Path=ShowTimbresCommand}" 
    IsEnabled="{Binding Path=CanExecuteShowTimbresCommand}"/> 

のように均等に動作します。 それは本当ですか、なぜですか?

答えて

10

は通常、コマンドのCanExecuteは、それはそれでお終いです、falseある場合CommandfalseIsEnabledを設定します受け入れるかを制御します。

MSDN

コマンドのもう一つの目的は、アクションが利用可能かどうかを示すためです。 [...]ボタンをCanExecuteChangedイベントをサブスクライブすることができますし、CanExecute戻り虚偽またはCanExecute戻り場合は有効にする場合は無効にすること。

+0

ありがとう...つまり、私は多くのXAMLコードを削除できます。 –

+1

@MichelKeijzers:これまでのところ、常にあなた自身が 'IsEnabled'を自分で扱っていたのですが、それは確かです。 –

+0

はい私は現在のところ、同じコマンドに対してIsEnabled = CanExecuteと一緒にコマンドバインドを行っています。私はあなたが答えで行った追加の編集が自動的に行われると仮定します。 –

関連する問題