向DataGrid中的单元格添加多个更改。
我有DataGrid,只想向一列添加样式。我设法更改了单元格的背景颜色:
<DataGrid.Resources>
<SolidColorBrush x:Key="backColour" Color="#E9E9E9" />
</DataGrid.Resources>
<DataGrid.Columns>
<DataGridTextColumn Header="Str" Binding="{Binding Str}">
<DataGridTextColumn.CellStyle>
<Style TargetType="DataGridCell">
<Setter Property="Background" Value="{StaticResource backColour}"/>
</Style>
</DataGridTextColumn.CellStyle>
</DataGridTextColumn>
</DataGrid.Columns>
当选中该行时,文本变白,但是我想补充一下,如果选中该行,则文本变黑。如何添加此其他更改?我找到了如何将其设为黑色(Setting the text Colour of a WPF DataGrid Row when row is selected),但不知道如何将其与以相同样式更改背景相关联。
答案 0 :(得分:0)
您可以从提供的链接中将触发器添加到您定义的Style
:
<DataGridTextColumn.CellStyle>
<Style TargetType="DataGridCell">
<Setter Property="Background" Value="{StaticResource backColour}"/>
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Foreground" Value="Black"/>
</Trigger>
</Style.Triggers>
</Style>
</DataGridTextColumn.CellStyle>
但是考虑到Foreground
在未选择行时也是黑色的,您可以使Foreground
始终是黑色的:
<DataGridTextColumn.CellStyle>
<Style TargetType="DataGridCell">
<Setter Property="Background" Value="{StaticResource backColour}"/>
<Setter Property="Foreground" Value="Black" />
</Style>
</DataGridTextColumn.CellStyle>