我有一个WPF DataGrid,当选中行中的复选框时,行会改变颜色。我有一个问题,如果突出显示一行(例如被鼠标点击),然后DataGrid失去焦点,那么该行将丢失它的自定义颜色。
以下是自定义颜色设置
<Style x:Key="DataGridStyle" TargetType="{x:Type DataGrid}">
<Setter Property="RowStyle">
<Setter.Value>
<Style TargetType="DataGridRow">
<Style.Triggers>
<DataTrigger Binding="{Binding IsSelected}" Value="True">
<Setter Property="Background" Value="#CBE5F2"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Setter.Value>
</Setter>
</Style>
问题图片:
用鼠标突出显示行:
DataGrid失去焦点后
问题: 在DataGrid失去焦点后,有没有办法让突出显示的行保持自定义颜色。
答案 0 :(得分:0)
我找到了一个解决方法,即设置单元格样式而不是行样式:
<Setter Property="CellStyle">
<Setter.Value>
<Style TargetType="DataGridCell">
<Style.Triggers>
<DataTrigger Binding="{Binding IsSelected}" Value="True">
<Setter Property="Background" Value="#CBE5F2"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Setter.Value>
</Setter>
它完全覆盖了所选的突出显示(亮蓝色),因此它并不理想,但即使失去焦点也能正常工作。