Как использовать MultiDataTrigger, чтобы проверить, выполняется ли единственное условие в Style.Triggers в WPF?
У меня есть три сетки в моем UserControl, один элемент управления отображается одновременно. В последнем столбце мне нужно использовать стиль, где мне нужно проверить данные и применить цвет ForeGround. Я могу написать стиль на каждом элементе управления в 3 сетки, используя DataTriggers
, Но я хочу конкретный стиль в Resource, который можно использовать где угодно. Я старался MultiDataTrigger
но это не служит моей цели, поскольку проверяет 2 или более Условий, чтобы быть правдой в MultiDataTrigger.Conditions
в то время как мне нужно проверить данные в одном элементе управления. Есть ли альтернативное решение для достижения этой цели?
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>