2011-01-03 18 views
34

私は、それぞれ40個のテキストボックスを持つWPFフォームを持っています。各テキストボックスは、対応するチェックボックスの値に基づいて有効/無効にする必要があります。私はこれを実現するためにICommandを使用することができるソリューションを見てきましたが、40 ICommandの実装を持たずに40個の個別のケースを処理するにはどうすればよいですか?MVVMを使用してWPFのチェックボックスの選択に基づいてテキストボックスを有効/無効にします。

答えて

86

だけCheckBoxIsCheckedプロパティにTextBoxIsEnabledプロパティをバインド:

<CheckBox Name="checkBox1" /> 
<TextBox IsEnabled="{Binding ElementName=checkBox1, Path=IsChecked}" /> 
+0

はい、私は質問を投稿した後、これを試してみました。これは私のために働く。純粋なMVVMを実現するために各チェックボックスに名前を付けないようにしようとしていたのですが、私は例外を作らなければならないと思います。ありがとう。 – aliensurfer

+2

私は同意します。 MVVMでこれをしないでください。この有効/無効は、純粋なユーザーインターフェイス設計の決定であり、アプリケーションの基礎となるデータとは何の関係もありません。 – Dabblernl

+1

@Prakash:チェックボックスの名前は「純粋な」MVVMではないと思いますか? MVVMの何もあなたがUI項目に名前をつけてはいけないと言います... –

関連する問題