AlternatingRowBackground颜色在数据网格编辑时发生更改

本文关键字:编辑 网格 颜色 数据 数据网 AlternatingRowBackground | 更新日期: 2023-09-27 18:20:06

我有一个数据网格,我在其中设置了AlternatingRowBackground。我允许用户编辑数据网格的值。但是,当用户编辑值时,背景颜色将变为白色。

<DataGrid Name="grdTests" AlternatingRowBackground="#C4E6FF"/>

我一直不知道它为什么会改变,我没有在其他地方设置背景色。

AlternatingRowBackground颜色在数据网格编辑时发生更改

这是因为White-是编辑模式的默认颜色,AlternatingRowBackground仅用于查看模式。你可以使用这种方法:
<Style TargetType="{x:Type DataGridCell}">
    <Style.Triggers>
        <Trigger Property="IsEditing" Value="True">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="DataGridCell">
                        <TextBox Text="{Binding RelativeSource={RelativeSource TemplatedParent}, 
                                    Path=Content.Text, Mode=TwoWay, UpdateSourceTrigger=Default}"
                                    HorizontalAlignment="Stretch" 
                                    VerticalAlignment="Stretch" 
                                    Padding="0" 
                                    BorderThickness="0" 
                                    Background="{Binding RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}, Path=AlternatingRowBackground}"/>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Trigger>
    </Style.Triggers>
</Style>

将此样式放在DataGridResources集合中,然后编辑单元格的颜色将与您的AlternatingRowBackground颜色相同。