2011-08-23 98 views
1

考慮多個條件與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> 

回答

1

您可以使用MultiDataTriggers解決此問題。我記得,只要確保按照正確的順序放置它們,符合所有標準的最後一個觸發器優先。