通常どおりプロパティにバインドします
<CheckBox Name="check1" IsChecked="{Binding Path=myViewModelProperty}" />
<CheckBox Name="check2" IsChecked="{Binding Path=myViewModelProperty}" />
<CheckBox Name="check3" IsChecked="{Binding Path=myViewModelProperty}" />
<CheckBox Name="check4" IsChecked="{Binding Path=myViewModelProperty}" />
次に、 ViewModel で:
public Boolean myViewModelProperty
{
get { ... }
set { ... }
}
必要に応じてViewModelでも:
this.RaisePropertyChanged<Boolean>(() => this.myViewModelProperty);
必要に応じて、1 つのプロパティにいくつでも要素の値をバインドできます (同じプロパティを持つ 4 つのチェックボックスを理解していなくても ^^)
MultiBinding は、1 つの要素の値を多数の ViewModel プロパティにバインドするために使用されます。
編集:4つのチェックボックスを列挙型に変換する必要があるという事実を考慮して:
<CheckBox Name="check1" IsChecked="{Binding Path=myViewModelProperty1}" />
<CheckBox Name="check2" IsChecked="{Binding Path=myViewModelProperty2}" />
<CheckBox Name="check3" IsChecked="{Binding Path=myViewModelProperty3}" />
<CheckBox Name="check4" IsChecked="{Binding Path=myViewModelProperty4}" />
public Boolean myViewModelProperty1
{
get
{
return this.b1;
}
set
{
this.b1 =value;
this.EvaluateMyEnum();
}
}
public Boolean myViewModelProperty2
{
get
{
return this.b2;
}
set
{
this.b2 =value;
this.EvaluateMyEnum();
}
}
public Boolean myViewModelProperty3
{
get
{
return this.b2;
}
set
{
this.b2 =value;
this.EvaluateMyEnum();
}
}
public Boolean myViewModelProperty4
{
get
{
return this.b4;
}
set
{
this.b4 =value;
this.EvaluateMyEnum();
}
}
void EvaluateMyEnum()
{
this.MyViewModelEnum = ......;
this.RaisePropertyChanged<MyEnum>(() => this.myViewModelEnum);
}