【问题标题】:WPF DataGridRow - Considering multiple conditions in TriggersWPF DataGridRow - 在触发器中考虑多个条件
【发布时间】:2011-08-23 14:38:35
【问题描述】:

使用 WPF 数据网格,我需要遵守这些要求:

  • IsMouseOver 时更改行背景。
  • 满足关键属性时将行背景更改为红色。
  • 选择行时将行背景更改为紫色,但不重要。
  • 当一行被选中且关键时,将行背景更改为深红色。

到目前为止,我无法满足最后一个条件。我现在的代码是:

<Style x:Key="GridRow" TargetType="DataGridRow">
        <Setter Property="FontSize" Value="10" />
        <Setter Property="Foreground" Value="#000000" />
        <Setter Property="Background" Value="#E5E5E5" />
        <Setter Property="Height" Value="24" />
        <Setter Property="VerticalContentAlignment" Value="Center" />
        <Style.Triggers>
            <Trigger Property="IsMouseOver" Value="True">
                <Setter Property="Background" Value="#F5F5F5" />
            </Trigger>
            <DataTrigger Binding="{Binding IsStatusCritical}" Value="True">
                <Setter Property="Background" Value="Red"/>
            </DataTrigger>
        </Style.Triggers>
    </Style>
    <Style TargetType="{x:Type DataGridCell}">
        <Style.Triggers>
            <Trigger Property="DataGridCell.IsSelected" Value="True">
                <Setter Property="Foreground" Value="White" />
                <Setter Property="Background" Value="#660066" />
            </Trigger>
        </Style.Triggers>
    </Style>

【问题讨论】:

    标签: wpf xaml triggers styles


    【解决方案1】:

    您可以使用MultiDataTriggers 解决此问题。只要确保将它们按正确的顺序放置,我记得,满足所有条件的最后一个触发器优先。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-19
      • 2016-11-28
      • 2019-01-31
      • 2020-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多