0

I have a WPF DataGrid where the row changes color when a checkbox in the row is selected. 我有一个问题,如果突出显示一行(例如被鼠标单击),然后 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 失去焦点后保持其自定义颜色。

4

1 回答 1

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>

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

于 2013-03-18T14:12:18.423 回答