2016-01-22 68 views
0

我當前根據列的值設置了DataGridRow。風格看起來像這樣;僅樣式一列的單元格DataGrid C#WPF

<DataGrid.RowStyle> 
    <Style TargetType="DataGridRow"> 
     <Style.Triggers> 
      <DataTrigger Binding="{Binding Overdue}" Value="1"> 
       <Setter Property="FontWeight" Value="Bold"/> 
      </DataTrigger> 
      <DataTrigger Binding="{Binding Priority}" Value="High"> 
       <Setter Property="Background" Value="Red"/> 
      </DataTrigger> 
      <DataTrigger Binding="{Binding Priority}" Value="Medium"> 
       <Setter Property="Background" Value="Orange"/> 
      </DataTrigger> 
      <DataTrigger Binding="{Binding Priority}" Value="Low"> 
       <Setter Property="Background" Value="LightGreen"/> 
      </DataTrigger> 
     </Style.Triggers> 
    </Style> 
</DataGrid.RowStyle> 

這將根據列的值將整個行應用到樣式。但是現在我只想將該樣式應用於該單元格中的列。這是目前風格的樣式;

enter image description here

但是我想通過下面與線去除在細胞中的造型;

enter image description here

即僅適用格式優先級列的單元格,而不是整行。

回答

2

您可以嘗試DataGridTemplateColumns的CellStyle。 Ref.

Like, 在資源中添加以下樣式「DGCellStyle」。

<Style x:Key="DGCellStyle" TargetType="DataGridCell"> 
      <Style.Triggers> 
      <DataTrigger Binding="{Binding Overdue}" Value="1"> 
       <Setter Property="FontWeight" Value="Bold"/> 
      </DataTrigger> 
      <DataTrigger Binding="{Binding Priority}" Value="High"> 
       <Setter Property="Background" Value="Red"/> 
      </DataTrigger> 
      <DataTrigger Binding="{Binding Priority}" Value="Medium"> 
       <Setter Property="Background" Value="Orange"/> 
      </DataTrigger> 
      <DataTrigger Binding="{Binding Priority}" Value="Low"> 
       <Setter Property="Background" Value="LightGreen"/> 
      </DataTrigger> 
     </Style.Triggers> 
    </Style> 

然後,在DataGridTemplateColumn中引用此樣式。

<DataGridTemplateColumn Header="ColumnHeader" Width="SizeToHeader" CellStyle="{StaticResource DGCellStyle}"/>