验证WPF DataGrid单元格条目时如何使用以前的值?

时间:2010-02-03 21:28:56

标签: wpf validation datagrid validationrules

我有一个WPF DataGrid。我想限制用户可以在特定列中输入的值,例如:

A列值可能只会增加(新值>旧值)。

B列值可能只会减少(新值<旧值)。

如果用户输入的值无效,我想恢复到之前的有效值。

我认为我可以在自定义ValidationRule中执行此操作,但我看不到从Validate()函数访问单元格的上一个值的方法。

我将不胜感激任何帮助!

1 个答案:

答案 0 :(得分:0)

您需要在业务层中执行此逻辑。确保您没有将UpdateSourceTrigger设置为PropertyChanged,因为这会在每次击键时更新您的值。如果值为9且用户键入10,则当用户键入1将小于9时将发生更新,这将使值重置为9.

更好的解决方案是将字段标记为无效(如果绑定到对象很容易)并向用户显示条目无效,而不是仅仅更改刚刚输入的内容。有时它只有一个字母,他们可能只想改变它以使输入有效。