将按钮的IsEnabled属性绑定到XAML中的2个复选框IsChecked属性

时间:2016-03-08 08:42:25

标签: wpf xaml mvvm

我想在选中2个复选框中的任何一个时启用按钮。 如果未选中任何复选框,则该按钮应处于非活动状态(IsEnabled = false)

可以像这样绑定。

  

IsEnabled =“{Binding ElementName = CheckBox Path = IsChecked}”

但它仅适用于单个复选框。我想将复选框IsChecked属性绑定到XAML本身的按钮的IsEnabled属性。 (我知道如何使用代码中更改的属性)

我尝试使用Multi触发器。

            <Button.IsEnabled>
                <MultiBinding>
                    <MultiBinding.Bindings>                                                  <Binding ElementName="BlankmeasurementCheckBox" Path="IsChecked"/>
                     <Binding ElementName="MeasurementCheckBox" Path="IsChecked"/>
                  </MultiBinding.Bindings>
             </MultiBinding>
          </Button.IsEnabled>

但它似乎没有帮助。你能帮帮我吗?提前谢谢。

1 个答案:

答案 0 :(得分:3)

您可以在此处使用MultiDataTrigger

以下是示例代码:

 <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
        <CheckBox Name="cbSampleYes" Content="Yes" />
        <CheckBox Name="cbSampleSure" Content="I'm sure" />
        <Button HorizontalAlignment="Center" Margin="0,20,0,0">
            <Button.Style>
                <Style TargetType="Button">
                    <Setter Property="Content" Value="Verified" />                    
                    <Style.Triggers>
                        <MultiDataTrigger>
                            <MultiDataTrigger.Conditions>
                                <Condition Binding="{Binding ElementName=cbSampleYes, Path=IsChecked}" Value="False" />
                                <Condition Binding="{Binding ElementName=cbSampleSure, Path=IsChecked}" Value="False" />
                            </MultiDataTrigger.Conditions>
                            <Setter Property="Content" Value="Unverified" />
                            <Setter Property="IsEnabled" Value="False" />
                        </MultiDataTrigger>
                    </Style.Triggers>
                </Style>
            </Button.Style>
        </Button>
    </StackPanel>