WPF验证'之前'设置值或发出命令

时间:2010-10-13 22:01:48

标签: wpf validation mvvm datagrid undo-redo

问候,

我对WPF相对较新,并且遇到与使用DataGrid控件进行验证有关的问题。我已经阅读了这篇文章(http://msdn.microsoft.com/en-us/magazine/ff714593.aspx),其中介绍了三种不同的验证方法,但它们似乎都没有解决如何防止设置值或调用执行所有验证之前执行undo / redo命令。

我想确保只能在单元格中输入正数。我设置了一个验证规则来检查单元格是否包含负数,并且我处理DataGrid的CellEditEnding事件以了解何时实际更改模型层中使用的数字。问题是在验证规则之前调用CellEditEnding。到验证规则捕获问题时,已经设置了模型中的数字。我需要的是CellEditEnded,但看起来这个事件只存在于DataGrid的Silvelight版本中。

有什么想法吗?

由于

1 个答案:

答案 0 :(得分:0)

数据网格很棘手,非常复杂。我想在这种情况下,我可能会尝试改变它所绑定的属性的“setter”。如果用户输入无效值,则抛出异常。 datagrid支持显示带有验证错误(红色边框)的无效单元格,以便用户可以看到哪些单元格/行有问题。

这不太理想,但它可能有用。