更改验证错误行为后Datagrid单元格背景错误

时间:2015-11-04 05:52:32

标签: c# wpf xaml

虽然存在验证错误,但我尝试移动下一个单元格进行编辑。我使用了以下代码。

protected override void OnCellEditEnding(DataGridCellEditEndingEventArgs e)
{
   e.Cancel = true;
}

推荐文章 - edit wpfdatagrid other cells while one of it's cell is invalid

它工作正常,但当我为其添加背景行颜色时,编辑时颜色会消失 As in the image

1 个答案:

答案 0 :(得分:1)

处于编辑模式的单元格有不同的样式。由于您通过所显示的代码取消了转换编辑模式,因此一旦开始编辑,此样式将始终显示。请记住,处于编辑模式的单元格也可能导致其他问题。最好将代码的行为更改为仅在有验证错误时取消CellEditEnding - 事件。​​

要解决颜色变化的问题:DataGirdColumns有EditingElementStyle可以更改。要将EditingElementStyle的背景(在此DataGridTextColumn“测试”的示例中)绑定到普通(不编辑)背景,请使用以下XAML:

<DataGridTextColumn Header="Test">
    <DataGridTextColumn.EditingElementStyle>
        <Style TargetType="TextBox">
            <Setter Property="Background" Value="{Binding Background}"/>
        </Style>
    </DataGridTextColumn.EditingElementStyle>
</DataGridTextColumn>

编辑单元格时,背景不会改变。