我正在尝试使用MultiDataTriggers根据两个文本框的值启用/禁用按钮。
文档声明MultiDataTrigger中的条件在逻辑上与一起进行AND运算。在下面的例子中,如果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>
答案 0 :(得分:3)
直接在对象上设置属性会覆盖任何样式触发的设置。将您的按钮声明更改为:
<Button Content="OK">
<Button.Style>
<Style>
<Setter Property="IsEnabled" Value="False"/>
<Style.Triggers>
现在,在样式中设置了IsEnabled属性,触发器可以更改它。不要问我为什么。 :)