数据网格编辑上的AlternatingRowBackground颜色更改

时间:2014-08-29 06:39:08

标签: c# wpf datagrid

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

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

我无法找出原因发生变化,我没有在其他任何地方设置backgroundcolor。

1 个答案:

答案 0 :(得分:1)

这是因为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>

将此样式放在Resources DataGrid的{​​{1}}集合中,然后,编辑单元格的颜色将与AlternatingRowBackground颜色相似。