WPF MutiDataTrigger未触发设定器

WPF MutiDataTrigger未触发设定器,wpf,datatrigger,multitrigger,multidatatrigger,Wpf,Datatrigger,Multitrigger,Multidatatrigger,我尝试使用MultiDataTriggers根据两个文本框的值启用/禁用按钮 文档说明MultiDataTrigger中的条件在逻辑上是“与”的。在下面的示例中,如果txtFirst.Text是foo,txtSecond.Text是bar,我希望启用该按钮。但是,该按钮始终保持禁用状态(IsEnabled=false) 我肯定我错过了一个窍门,但彻底搜索谷歌并没有让我找到任何地方 <StackPanel> <Button IsEnabled="False" Co

我尝试使用MultiDataTriggers根据两个文本框的值启用/禁用按钮

文档说明MultiDataTrigger中的条件在逻辑上是“与”的。在下面的示例中,如果txtFirst.Text是foo,txtSecond.Text是bar,我希望启用该按钮。但是,该按钮始终保持禁用状态(IsEnabled=false)

我肯定我错过了一个窍门,但彻底搜索谷歌并没有让我找到任何地方

<StackPanel>
        <Button IsEnabled="False" Content="OK">
            <Button.Style>
                <Style>
                    <Style.Triggers>
                        <MultiDataTrigger>
                            <MultiDataTrigger.Conditions>
                                <Condition Binding="{Binding ElementName=txtFirst, Path=Text}" Value="foo"/>
                                <Condition Binding="{Binding ElementName=txtSecond, Path=Text}" Value="bar"/>
                            </MultiDataTrigger.Conditions>
                            <Setter Property="Button.IsEnabled" Value="True"/>
                        </MultiDataTrigger>
                    </Style.Triggers>
                </Style>
            </Button.Style>
        </Button>

        <TextBox x:Name="txtFirst"/>
        <TextBox x:Name="txtSecond"/>
    </StackPanel>

直接在对象本身上设置特性会覆盖任何样式触发的设置。将按钮声明更改为:

<Button Content="OK">
    <Button.Style>
        <Style>
            <Setter Property="IsEnabled" Value="False"/>
            <Style.Triggers>

既然在样式中设置了IsEnabled属性,触发器就可以对其进行更改。别问我为什么。:)