WPF multitrigger引用2个其他控件

WPF multitrigger引用2个其他控件,wpf,triggers,textbox,styles,multidatatrigger,Wpf,Triggers,Textbox,Styles,Multidatatrigger,我有两个复选框和一个文本框。如果两个复选框都有IsChecked=False,我希望文本框的IsEnabled=False。我可以用多触发器来做这个吗?我在尝试使用Source属性时不断出错 我让它与MultiDataTriggers一起工作,正如您在下面看到的。但我有两个问题 1) 这是我唯一的选择吗?我能用多重起动器吗 <TextBox.Style> <Style TargetType="TextBox"> <Style.Triggers

我有两个复选框和一个文本框。如果两个复选框都有IsChecked=False,我希望文本框的IsEnabled=False。我可以用多触发器来做这个吗?我在尝试使用Source属性时不断出错

我让它与MultiDataTriggers一起工作,正如您在下面看到的。但我有两个问题

1) 这是我唯一的选择吗?我能用多重起动器吗

<TextBox.Style>
    <Style TargetType="TextBox">
        <Style.Triggers>
            <MultiDataTrigger>
                <MultiDataTrigger.Conditions>
                    <Condition Binding="{Binding ElementName=uxDmm , Path=IsChecked}"
                                  Value="False" />
                    <Condition Binding="{Binding ElementName=uxGpm , Path=IsChecked}"
                                  Value="False" />
                </MultiDataTrigger.Conditions>
                <Setter Property="IsEnabled"
                          Value="False" />
            </MultiDataTrigger>
        </Style.Triggers>
    </Style>
</TextBox.Style>

2) 我可以在标签外面做这个吗?我不确定触发器可以应用在哪里,大多数示例都是在样式或数据模板中应用的,但是在样式中定义它会弄乱我对文本框的默认外观

  • 你这样做是正确的。我不确定
    多触发器
    ,但无论如何,这种方法看起来更好
  • 如果希望您的
    样式
    基于默认的文本框样式,请尝试以下操作:

  • 谢谢查理。我还没有弄清楚如何使样式从我已有的级联默认样式派生出来。你的语法解决了这个问题。我真希望有一种更好的方式来定义触发器,尽管是在样式之外。谢谢