0
<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>

///根据条件在这里做一些事情......

代码意味着当值等于 5 或​​ 20 ===> 做某事。

我跟着这个多触发器

但这"Binding Path="Property Value =5""条线显然是错误的。

我应该在这里写什么来比较 Value 是 5 还是不是 谢谢!

4

2 回答 2

0

如果您没有多个条件,则不需要MultiDataTrigger.

如果您想与一个值进行比较,您可以使用一个Binding.ConverterParameter设置为所述值的转换器。转换器将仅比较值和参数(如果未将其作为参数传递,则可能将解析应用于参数int

当然,不要将除属性路径之外的任何内容放入其中Path。转换器应该直接返回true,或者false这可能是MultiBinding.Converter.

于 2012-01-11T03:02:33.677 回答
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>
于 2012-01-11T17:20:31.133 回答