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