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

时间:2010-02-01 09:46:48

标签: wpf datatrigger multitrigger multidatatrigger

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

1 个答案:

答案 0 :(得分:1)

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

但是如果这些样式除了触发器之外是相同的,那么你可以使用它们共有的所有内容创建一个样式,然后根据第一个样式创建另一个样式。它有点类似于OOP中的继承。

这就是它的样子:

<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>