1

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

4

1 回答 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 回答