关于datatrigger:如何在WPF中使用MultiDataTrigger来检查Style.Triggers中的单个条件是否为真?

How to use MultiDataTrigger to check a single condition to be true in Style.Triggers in WPF?

我的UserControl中有三个网格,其中一次显示一个控件。在最后一列中,我需要使用一种样式,其中需要检查数据并应用ForeGround颜色。我可以使用DataTriggers在3个网格中的每个控件上编写样式。但是我想在Resource中使用一种具体的样式,该样式可以在任何地方使用。我尝试了MultiDataTrigger,但是它没有达到我的目的,因为它在MultiDataTrigger.Conditions中检查2个或更多条件是否为真,而我需要在单个控件中检查数据。有没有其他解决方案可以实现这一目标?


如果使用某种网格,则可能使用CellTemplate或类似的其他属性来完成任务。我认为您确实需要在不同的列中使用不同的样式。

但是,如果触发器除外,这些样式相同,则可以使用它们共同的所有内容制作一个样式,然后在第一个样式的基础上创建另一个样式。这有点类似于OOP中的继承。

这可能是这样的:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<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>