Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 一个设置由第二个设置决定_C#_Wpf - Fatal编程技术网

C# 一个设置由第二个设置决定

C# 一个设置由第二个设置决定,c#,wpf,C#,Wpf,我在不同的WPF对话框中有相同的选项。一种选择取决于另一种选择。如果我单击第一个,我还想检查第二个。这两个选项都对应于不同类中的私有bool变量。这个问题的最佳解决方案是什么?您可以使用Style.Triggers在WPF/XAML中实现这一点。例如,下面的代码是一个关于如何基于复选框(选中/未选中)的状态绑定textblock控件的IsEnabled状态的示例 对于选中另一个复选框时选中的复选框,它看起来是这样的(我猜) *编辑 类中的属性是否可以通过与这些复选框不同的方式进行更改?如

我在不同的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>