Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.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
Wpf 如果复选框未选中,如何启用控件?_Wpf_Xaml - Fatal编程技术网

Wpf 如果复选框未选中,如何启用控件?

Wpf 如果复选框未选中,如何启用控件?,wpf,xaml,Wpf,Xaml,我知道如果未选中复选框,则可以禁用控件,通常我会这样做: <CheckBox x:Name="myCheckBox" /> <Button IsEnabled="{Binding ElementName=myCheckBox, Path=IsChecked}" /> 致以最诚挚的问候。您可以将绑定与DataTrigger一起使用: <CheckBox x:Name="myCheckBox"/> <Button x:Name="button">

我知道如果未选中
复选框
,则可以禁用
控件
,通常我会这样做:

<CheckBox x:Name="myCheckBox" />
<Button IsEnabled="{Binding ElementName=myCheckBox, Path=IsChecked}" />

致以最诚挚的问候。

您可以将绑定与DataTrigger一起使用:

<CheckBox x:Name="myCheckBox"/>
<Button x:Name="button">
    <Button.Style>
        <Style TargetType="Button">
            <Style.Triggers>
                <DataTrigger Binding="{Binding IsChecked, ElementName=myCheckBox}"
                             Value="True">
                    <Setter Property="IsEnabled" Value="False"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </Button.Style>
</Button>

您可以将绑定与数据触发器一起使用:

<CheckBox x:Name="myCheckBox"/>
<Button x:Name="button">
    <Button.Style>
        <Style TargetType="Button">
            <Style.Triggers>
                <DataTrigger Binding="{Binding IsChecked, ElementName=myCheckBox}"
                             Value="True">
                    <Setter Property="IsEnabled" Value="False"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </Button.Style>
</Button>

将此答案用于向访问者更新
DataTrigger
的新语法,以实现相同的效果。它在“Visual Studio 2015”或更高版本中对我有效

        <CheckBox x:Name="myCheckBox"/>
        <Button x:Name="button">
            <Button.Style>
                <Style TargetType="Button">
                    <Style.Triggers>
                        <DataTrigger Binding="{Binding ElementName=myCheckBox, Path=IsChecked}"
                                     Value="True">
                            <DataTrigger.Setters>
    <!--it would make the Button in Disabled state since checkbox is in Checked state-->
                              <Setter Property="IsEnabled" Value="False"/> 
                        </DataTrigger.Setters>
                    </DataTrigger>
                    <DataTrigger Binding="{Binding ElementName=myCheckBox, Path=IsChecked}"
                                 Value="False">
                        <DataTrigger.Setters>
<!--it would make the Button in Enabled state since checkbox is in Unchecked state-->
                              <Setter Property="IsEnabled" Value="True"/>
                        </DataTrigger.Setters>
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </Button.Style>
    </Button>


我希望这对大家都有帮助。谢谢

将此答案用于向访问者更新
DataTrigger
的新语法,以实现相同的效果。它在“Visual Studio 2015”或更高版本中对我有效

        <CheckBox x:Name="myCheckBox"/>
        <Button x:Name="button">
            <Button.Style>
                <Style TargetType="Button">
                    <Style.Triggers>
                        <DataTrigger Binding="{Binding ElementName=myCheckBox, Path=IsChecked}"
                                     Value="True">
                            <DataTrigger.Setters>
    <!--it would make the Button in Disabled state since checkbox is in Checked state-->
                              <Setter Property="IsEnabled" Value="False"/> 
                        </DataTrigger.Setters>
                    </DataTrigger>
                    <DataTrigger Binding="{Binding ElementName=myCheckBox, Path=IsChecked}"
                                 Value="False">
                        <DataTrigger.Setters>
<!--it would make the Button in Enabled state since checkbox is in Unchecked state-->
                              <Setter Property="IsEnabled" Value="True"/>
                        </DataTrigger.Setters>
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </Button.Style>
    </Button>


我希望这对大家都有帮助。谢谢

我是这样想的,但我正在寻找一个较短的解决方案,我觉得荒谬的是,对于这样一个简单的操作,我们需要wpf中的所有代码。不过,谢谢你的帮助,我非常感谢。如果没有绑定转换器,你不会把它缩短。我是这样想的,但我正在寻找一个更短的解决方案,我觉得荒谬的是,对于这样一个简单的操作,我们需要wpf中的所有这些代码。但是,感谢您的帮助,我非常感谢。如果没有绑定转换器,您将无法缩短它。如果这是一个常见的要求,那么您可以非常轻松地创建一个带有附加属性的
CheckBox
的子类,该属性只是
IsChecked
属性的位反转,将其放入一个包含常用函数和控件的dll中。如果这是一个常见的要求,那么您可以很容易地创建一个带有附加属性的
CheckBox
的子类,该属性只是
IsChecked
属性的按位反转,将其放入一个包含常用函数和控件的dll中。