<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition>
<Condition.Binding>
<MultiBinding Converter="{StaticResource BooleanOr}">
<Binding Path="Property Value =5"/>
<Binding Path="Property Value =10"/>
</MultiBinding>
</Condition.Binding>
</Condition>
</MultiDataTrigger.Conditions>
///根据条件做点什么......
代码表示值eqauls 5或20 ===&gt;做点什么。
我关注this一个用于多重触发器
但"Binding Path="Property Value =5""
这条线显然是错误的。
我应该在这里写什么才能比较价值是否为5 谢谢!
答案 0 :(得分:0)
如果您没有多个条件,则不需要MultiDataTrigger
。
如果要与某个值进行比较,可以使用converter,其中Binding.ConverterParameter
设置为所述值。转换器只会比较值和参数(如果没有作为int
传递,可能会使用应用于参数的解析)
当然,不要将属性路径以外的任何内容放入Path
。转换器应直接返回true
或false
,因为这可能是MultiBinding.Converter
所期望的。
答案 1 :(得分:0)
您需要另一个转换器来查看一个值是否等于您与
进行比较的任何值<MultiBinding Converter="{StaticResource BooleanOr}">
<Binding Path="Value" ConverterParameter="5" Converter="{StaticResource IsValueEqualParameterConverter}" />
<Binding Path="Value" ConverterParameter="10" Converter="{StaticResource IsValueEqualParameterConverter}" />
</MultiBinding>
另一种选择是使用DataTriggers
<Style>
<Setter Property="SomeProperty" Value="FalseValue" />
<Style.Triggers>
<DataTrigger Binding="{Binding Value}" Value="5">
<Setter Property="SomeProperty" Value="TrueValue" />
</DataTrigger>
<DataTrigger Binding="{Binding Value}" Value="10">
<Setter Property="SomeProperty" Value="TrueValue" />
</DataTrigger>
</Style.Triggers>
</Style>