У меня есть три сетки в моем UserControl, из которых один элемент управления отображается вовремя. В последнем столбце мне нужно использовать стиль, где мне нужно проверить данные и применить цвет ForeGround. Я могу написать стиль в каждом из элементов управления в 3 сетках, используя DataTriggers
. Но я хочу конкретный стиль в ресурсе, который можно использовать где угодно. Я пробовал MultiDataTrigger
, но это не служит моей цели, так как он проверяет 2 или более Континги на true в MultiDataTrigger.Conditions
, тогда как мне нужно проверить данные в одном элементе управления. Есть ли альтернативное решение для достижения этого?Как использовать MultiDataTrigger для проверки единственного условия, которое должно быть истинным в Style.Triggers в WPF?
1
A
ответ
1
Если вы используете какую-то сетку, вы, вероятно, используете CellTemplate или другое свойство, подобное этому для выполнения своей задачи. Я думаю, вам нужно использовать разные стили в разных столбцах.
Но если эти стили одинаковы, кроме триггеров, то вы можете сделать один стиль со всем, что является общим для них обоих, а затем создать другой стиль, основанный на первом. Это немного похоже на наследование в ООП.
Вот как это может выглядеть следующим образом:
<Style x:Key="BaseStyle" TargetType=".....">
<!-- Common setters and triggers -->
<Setter ... />
<Setter ... />
<Setter ... />
</Style>
<Style x:Key="InheritedStyle" BasedOn="{StaticResource BaseStyle}" TargetType=".....">
<!-- This style's specific setters and triggers -->
<Setter ... />
<Style.Triggers>
...
<Style.Triggers>
</Style>