WPF DataGridRow - 在触发器

WPF DataGridRow - 在触发器

问题描述:

考虑多个条件与WPF数据网格的工作,我必须遵守这些requeriments:WPF DataGridRow - 在触发器

  • 更改行背景时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> 

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