虽然存在验证错误,但我尝试移动下一个单元格进行编辑。我使用了以下代码。
protected override void OnCellEditEnding(DataGridCellEditEndingEventArgs e)
{
e.Cancel = true;
}
推荐文章 - edit wpfdatagrid other cells while one of it's cell is invalid
答案 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>
编辑单元格时,背景不会改变。