我的 UserControl 中有三个网格,其中一个控件一次显示。在最后一列中,我需要使用 Style 来检查数据并应用 ForeGround 颜色。我可以在 3 个网格中的每个控件上使用DataTriggers
. 但我想要一个可以在任何地方使用的 Resource 中的具体样式。我试过MultiDataTrigger
了,但它没有达到我的目的,因为它检查了 2 个或更多条件是否为真,MultiDataTrigger.Conditions
而我需要检查单个控件中的数据。是否有任何替代解决方案来实现这一目标?
问问题
564 次
1 回答
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>
于 2010-02-01T19:30:23.823 回答