我在不同的 WPF 对话框中有相同的选项。一个选项取决于另一个选项。如果我点击第一个,我也想检查第二个。这两个选项对应于不同类中的私有 bool 变量。这个问题的最佳解决方案是什么?
问问题
74 次
1 回答
1
您可以使用 Style.Triggers 在 WPF/XAML 中执行此操作。例如,下面的代码是一个关于如何根据复选框的状态(选中/未选中)绑定文本块控件的 IsEnabled 状态的示例
<TextBlock Text="mytextblockText: ">
<TextBlock.Style>
<Style TargetType="TextBlock">
<Style.Triggers>
<DataTrigger Binding="{Binding IsChecked,ElementName=myCheckbox}" Value="False">
<Setter Property="IsEnabled" Value="True"/>
</DataTrigger>
<DataTrigger Binding="{Binding IsChecked, ElementName=myCheckbox}" Value="True">
<Setter Property="IsEnabled" Value="False"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
对于选中另一个复选框时选中的复选框,它看起来像这样(我猜)
<CheckBox>
<CheckBox.Style>
<Style TargetType="CheckBox">
<Style.Triggers>
<DataTrigger Binding="{Binding IsChecked,ElementName=myCheckbox}" Value="False">
<Setter Property="IsChecked" Value="True"/>
</DataTrigger>
<DataTrigger Binding="{Binding IsChecked, ElementName=myCheckbox}" Value="True">
<Setter Property="IsChecked" Value="False"/>
</DataTrigger>
</Style.Triggers>
</Style>
</CheckBox.Style>
</CheckBox>
*edit 类中的属性可以通过与这些复选框不同的方式进行更改吗?如果是,您可以在属性更改时触发事件或直接操作相应框的检查状态。另外,这些盒子是否相互依赖?还是只是一个依赖于另一个(A <=> B 或 A => B)?
要在 boxe 的状态之一发生更改时操作属性,您可以使用 Checked/Unchecked 事件。或使用此处Pat 的回答中所述的 DependencyProperty
于 2012-11-23T09:11:56.063 回答