我的 WPF 应用程序中有三个 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;
orcbTest1.IsEnabled = true;
然后 CheckBox es保持禁用状态,
但是只有一个 CheckBox 中的更改说,“cbTest1”的值true
也会在其他复选框中进行更改。就像如果cbTest1.IsEnabled = true;
所有三个 CheckBox 都被启用。如果cbTest1.IsEnabled = false;
则所有三个 CheckBox 都被禁用。
任何人都可以启发我。为什么会这样?绑定是如何在这里发生的?还有一个问题,如何将 checkBoxes isEnabled 属性与 viewModel 中的属性绑定?