2014-08-29 64 views
0

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

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

我还没有找到它为什么会改变,我不设置backgroundcolor其他地方。

回答

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然后,编辑单元的颜色就会像你AlternatingRowBackground颜色。