Как использовать MultiDataTrigger, чтобы проверить, выполняется ли единственное условие в Style.Triggers в WPF? - PullRequest
1 голос
/ 01 февраля 2010

У меня есть три сетки в моем UserControl, один элемент управления отображается одновременно. В последнем столбце мне нужно использовать стиль, где мне нужно проверить данные и применить цвет ForeGround. Я могу написать стиль для каждого элемента управления в 3 сетках, используя DataTriggers. Но я хочу конкретный стиль в Resource, который можно использовать где угодно. Я попытался MultiDataTrigger, но это не соответствует моей цели, так как проверяет 2 или более Условий на MultiDataTrigger.Conditions, тогда как мне нужно проверить данные в одном элементе управления. Есть ли альтернативное решение для достижения этой цели?

1 Ответ

1 голос
/ 01 февраля 2010

Если вы используете какую-то сетку, вы, вероятно, используете 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>
...