WPF アプリケーションに 3 つの CheckBox があり、ViewModel のプロパティに従って CheckBox を無効/有効にする必要があります。
<Grid>
<CheckBox x:Name="cbTest1" Margin="12,341,476,5" IsEnabled="{Binding Path=BoolProperty, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
<CheckBox x:Name="cbTest3" Margin="74,341,414,5" IsEnabled="{Binding Path=BoolProperty, Mode=TwoWay }" />
<CheckBox x:Name="cbTest2" Margin="131,341,359,5" IsEnabled="{Binding Path=BoolProperty, Mode=TwoWay }" />
<Button x:Name="btnClick" Click="btnClick_Click" Margin="231,333,29,5" />
</Grid>
私のテスト アプリケーションでは、ボタン クリック用のコード ビハインドを作成しました。
private void btnClick_Click(object sender, RoutedEventArgs e)
{
if (_boolProperty == true)
{
_boolProperty = false;
cbTest1.IsEnabled = false;
}
else
{
_boolProperty = true;
cbTest1.IsEnabled = true;
}
}
奇妙な動作は、コメントすると、cbTest1.IsEnabled = false;
またはcbTest1.IsEnabled = true;
CheckBox es が無効のままになることです。
ただし、1 つの CheckBox のみを変更すると、「cbTest1」の値がtrue
他の checkBox にも変更を加えます。cbTest1.IsEnabled = true;
3 つの CheckBox がすべて有効になっている場合と同様です。その場合cbTest1.IsEnabled = false;
、3 つの CheckBox がすべて無効になります。
誰でも私に教えてください。なぜこうなった?ここでバインディングはどのように行われますか? もう 1 つの質問ですが、checkBoxes の isEnabled プロパティを viewModel のプロパティにバインドするにはどうすればよいですか?