Сравните привязку мульти-триггера со значением - PullRequest
0 голосов
/ 11 января 2012
<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>

/// Делать что-то здесь, основываясь на условии ....

Код означает, когда Value eqauls 5 или 20 ===> Делать что-то.

Я следовал это один для мульти-триггеров

Но "Binding Path="Property Value =5"" эта строка явно неверна.

Что я должен написать здесь, чтобы сравнить Значение равно 5 или нет Спасибо!

Ответы [ 2 ]

0 голосов
/ 11 января 2012

Вам понадобится другой конвертер, чтобы увидеть, равно ли одно значение тому, с которым вы сравниваете

<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>
0 голосов
/ 11 января 2012

Если у вас не более одного условия, вам не нужно MultiDataTrigger.

Если вы хотите сравнить со значением, вы можете использовать конвертер , где Binding.ConverterParameter установлен на указанное значение.Преобразователь просто сравнил бы значение и параметр (возможно, с анализом, примененным к параметру, если он не передан как int)

Не помещайте ничего, кроме пути свойства, в Path, конечно.Преобразователь должен непосредственно возвращать true или false, поскольку это предположительно ожидается MultiBinding.Converter.

...