【问题标题】:WPF MutiDataTrigger not firing setterWPF MutiDataTrigger 不触发设置器
【发布时间】:2010-11-09 07:47:31
【问题描述】:

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

文档声明 MultiDataTrigger 中的条件在逻辑上是与在一起的。在下面的示例中,如果 txtFirst.Text 是 foo 并且 txtSecond.Text 是 bar 我想启用该按钮。但是,该按钮始终处于禁用状态 (IsEnabled=false)。

我确定我在这里错过了一个技巧,但是彻底搜索 Google 并没有让我到任何地方......

<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>

【问题讨论】:

    标签: wpf datatrigger multitrigger multidatatrigger


    【解决方案1】:

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

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

    现在样式中设置了 IsEnabled 属性,触发器可以更改它。不要问我为什么。 :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-05-02
      • 1970-01-01
      • 1970-01-01
      • 2011-10-30
      • 2021-11-08
      • 2012-03-14
      相关资源
      最近更新 更多