Как использовать 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>
Другие вопросы по тегам