我有一个WPF DataGrid
。我想限制用户可以在特定列中输入的值,例如:
A列值可能只会增加(新值>旧值)。
B列值可能只会减少(新值<旧值)。
如果用户输入的值无效,我想恢复到之前的有效值。
我认为我可以在自定义ValidationRule
中执行此操作,但我看不到从Validate()
函数访问单元格的上一个值的方法。
我将不胜感激任何帮助!
答案 0 :(得分:0)
您需要在业务层中执行此逻辑。确保您没有将UpdateSourceTrigger
设置为PropertyChanged
,因为这会在每次击键时更新您的值。如果值为9且用户键入10,则当用户键入1将小于9时将发生更新,这将使值重置为9.
更好的解决方案是将字段标记为无效(如果绑定到对象很容易)并向用户显示条目无效,而不是仅仅更改刚刚输入的内容。有时它只有一个字母,他们可能只想改变它以使输入有效。