2014-11-04 79 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> 
相关问题