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 можно использовать одним из двух способов:
- Вы можете установить свойства Property и Value для установки обычного условия свойства.
- Вы можете установить свойства Binding и Value для настройки условия данных.
Теперь, если вы хотите выполнить условие или в любом случае, вы фактически будете использовать MultiDataTrigger. Гвоздик здесь заключается в том, что мы можем использовать свойство Binding класса Condition в сочетании с MultiValueConverter, чтобы получить желаемое поведение... подробнее
Он также опубликовал пример решения.