选中后删除自定义DataGrid行背景颜色

时间:2013-03-15 21:27:52

标签: datagrid colors row datatrigger

我有一个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>

问题图片:

用鼠标突出显示行: Row Highlighted

DataGrid失去焦点后 Datagrid Lost Focus

问题: 在DataGrid失去焦点后,有没有办法让突出显示的行保持自定义颜色。

1 个答案:

答案 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>

它完全覆盖了所选的突出显示(亮蓝色),因此它并不理想,但即使失去焦点也能正常工作。