Сравните привязку мульти-триггера со значением

<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 ответа

Решение

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

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

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

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

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

Другие вопросы по тегам