2016-01-22 3 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

Вы можете попробовать CellStyle для DataGridTemplateColumns. Ref.

Нравится, Добавьте в ресурс следующий стиль «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}"/> 
Смежные вопросы