2014-11-04 78 views
0

我想要了解如何在DataGrid上使用DataTriggers。WPF DataGrid - 基於隱藏值的不同單元格顏色

我的數據表中有四列(節點,名稱,值,標誌)。標誌是數據網格中的隱藏列。

當Flag = 2但Value列應該是紅色的時候,DataGridRow會有PaleGreen背景。我知道我可以爲國旗欄創建一個風格,因爲這是不可能的,這是沒有用的。

對不起,如果這是一個新手問題。首先從WinForms進入wpf。

我有什麼至今:

<Style TargetType="{x:Type DataGridRow}"> 
     <Style.Triggers> 
      <DataTrigger Binding="{Binding Flag}" Value="2"> 
       <Setter Property="Background" Value="PaleGreen" /> 
       <Setter Property="Foreground" Value="Black" /> 
      </DataTrigger> 
      <DataTrigger Binding="{Binding Flag}" Value="3"> 
       <Setter Property="Background" Value="CadetBlue" /> 
       <Setter Property="Foreground" Value="White" /> 
      </DataTrigger> 
     </Style.Triggers> 
    </Style> 

回答

2

想通了。完整性代碼

<UserControl.Resources> 
<Style TargetType="{x:Type DataGridRow}"> 
     <Style.Triggers> 
      <DataTrigger Binding="{Binding Flag}" Value="2"> 
       <Setter Property="Background" Value="PaleGreen" /> 
       <Setter Property="Foreground" Value="Black" /> 
      </DataTrigger> 
      <DataTrigger Binding="{Binding Flag}" Value="3"> 
       <Setter Property="Background" Value="CadetBlue" /> 
       <Setter Property="Foreground" Value="White" /> 
      </DataTrigger> 
     </Style.Triggers> 
    </Style> 
    <Style TargetType="DataGridCell" x:Key="ValueColumn"> 
     <Style.Triggers> 
      <DataTrigger Binding="{Binding Flag}" Value="2"> 
       <Setter Property="Background" Value="Red" /> 
       <Setter Property="Foreground" Value="White" /> 
      </DataTrigger> 
     </Style.Triggers> 
    </Style> 
</UserControl.Resources> 
<DataGrid> 
    <DataGrid.Columns> 
       <DataGridTextColumn Header="Node" Binding="{Binding Path=Node}"/> 
       <DataGridTextColumn Header="Name" Binding="{Binding Path=Name}"/> 
       <DataGridTextColumn MinWidth="300" Header="Value" Binding="{Binding Path=Value}" CellStyle="{StaticResource ValueColumn}"/> 
       <DataGridTextColumn Header="Flag" Binding="{Binding Path=Flag}" Visibility="Hidden" /> 
    </DataGrid.Columns> 
</DataGrid> 
相關問題