1

我有两个复选框和一个文本框。如果两个 CheckBox 都具有 IsChecked=False,我希望 TextBox 具有 IsEnabled=False。我可以用 MultiTrigger 做到这一点吗?尝试使用 Source 属性时,我不断收到错误消息。

我让它与 MultiDataTriggers 一起工作,如下所示。但是有两个问题。

1)这是我唯一的选择吗?我可以用 MultiTrigger 做到这一点吗?

<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) 我可以在标签之外执行此操作吗?我不确定在哪里可以应用触发器,大多数示例都在 Style 或 DataTemplates 中进行,但在 Style 中定义它会破坏我对 TextBox 的默认外观。

4

1 回答 1

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

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

于 2010-04-05T20:55:03.883 回答