【问题标题】:How to use MultiDataTrigger to check a single condition to be true in Style.Triggers in WPF?如何使用 MultiDataTrigger 在 WPF 中的 Style.Triggers 中检查单个条件是否为真?
【发布时间】:2011-01-11 15:46:29
【问题描述】:

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

【问题讨论】:

    标签: wpf datatrigger multitrigger multidatatrigger


    【解决方案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>
    

    【讨论】:

      猜你喜欢
      • 2015-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-13
      • 1970-01-01
      • 2013-04-19
      • 2017-07-16
      相关资源
      最近更新 更多