代码之家  ›  专栏  ›  技术社区  ›  BrettRobi

WPF多起重工参考2个其他控制

  •  1
  • BrettRobi  · 技术社区  · 15 年前

    我有两个复选框和一个文本框。如果两个复选框的ischecked=false,我希望文本框的isEnabled=false。我能用一个多用扳机来做这个吗?我在尝试使用源属性时不断出错。

    我让它与多数据触发器一起工作,如下所示。但有两个问题。

    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)我可以在标签外做这个吗?我不确定在哪里可以应用触发器,大多数示例都是在样式或数据模板中进行的,但是在样式中定义它会破坏我对文本框的默认外观。

    1 回复  |  直到 12 年前
        1
  •  2
  •   Charlie    15 年前
    1. 你的做法是正确的。我不确定 MultiTrigger 但无论如何,这种方法看起来更好。
    2. 如果你想要你的 Style 要基于默认文本框样式,请尝试以下操作:

    <Style TargetType="TextBox" BasedOn="{StaticResource {x:Type TextBox}}">

    推荐文章