xaml: существует ли метод для реализации логики ИЛИ в нескольких триггерах?

Я хочу, чтобы роль была либо TopLevelHeader, либо TopLevelItem, а также IsPressed. Возможно ли это без указания двух MultiTriggers?

<MultiTrigger>

  <MultiTrigger.Conditions>

  <!--  IsPressed   -->
  <Condition Property="IsPressed" Value="True"/>
  <Condition Property="Role" Value="TopLevelHeader"/>

  </MultiTrigger.Conditions>

    <Setter TargetName="Border" Property="Background" .../>

</MultiTrigger>

ТИА

1 ответ

Решение

Чарли Роббинс опубликовал статью о том, как использовать MultiTrigger с условием "или":

MultiTrigger (и MultiDataTrigger) оба имеют свойство "Условия" типа ConditionCollection. Каждый объект Condition внутри этих ConditionCollections можно использовать одним из двух способов:

  1. Вы можете установить свойства Property и Value для установки обычного условия свойства.
  2. Вы можете установить свойства Binding и Value для настройки условия данных.

Теперь, если вы хотите выполнить условие или в любом случае, вы фактически будете использовать MultiDataTrigger. Гвоздик здесь заключается в том, что мы можем использовать свойство Binding класса Condition в сочетании с MultiValueConverter, чтобы получить желаемое поведение... подробнее

Он также опубликовал пример решения.

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