我有一个数据网格,我在其中设置了AlternatingRowBackground.I允许用户编辑datagrid的值。但是,当用户编辑值时,背景颜色会变为白色。
<DataGrid Name="grdTests" AlternatingRowBackground="#C4E6FF"/>
我无法找出原因发生变化,我没有在其他任何地方设置backgroundcolor。
答案 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
颜色相似。