C# 一个设置由第二个设置决定
我在不同的WPF对话框中有相同的选项。一种选择取决于另一种选择。如果我单击第一个,我还想检查第二个。这两个选项都对应于不同类中的私有bool变量。这个问题的最佳解决方案是什么?您可以使用Style.Triggers在WPF/XAML中实现这一点。例如,下面的代码是一个关于如何基于复选框(选中/未选中)的状态绑定textblock控件的IsEnabled状态的示例C# 一个设置由第二个设置决定,c#,wpf,C#,Wpf,我在不同的WPF对话框中有相同的选项。一种选择取决于另一种选择。如果我单击第一个,我还想检查第二个。这两个选项都对应于不同类中的私有bool变量。这个问题的最佳解决方案是什么?您可以使用Style.Triggers在WPF/XAML中实现这一点。例如,下面的代码是一个关于如何基于复选框(选中/未选中)的状态绑定textblock控件的IsEnabled状态的示例 对于选中另一个复选框时选中的复选框,它看起来是这样的(我猜) *编辑 类中的属性是否可以通过与这些复选框不同的方式进行更改?如
对于选中另一个复选框时选中的复选框,它看起来是这样的(我猜)
*编辑
类中的属性是否可以通过与这些复选框不同的方式进行更改?如果是,则可以在属性更改时触发事件,或直接操作相应框的checkstate。此外,这些盒子是否相互依赖?或者只是一个依赖于另一个(A B或A=>B)
要在某个框的状态发生更改时操作属性,可以使用选中/未选中事件。或者使用Answare over中描述的DependencyProperty来澄清-是一个对话框到另一个对话框的依赖关系,还是同一对话框中的依赖选项。如果B依赖于A,那么在检查B时是否也应检查A?是从一个对话框到另一个对话框的依赖关系。
<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>