0

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

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

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

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

我认为我可以在 custom 中执行此操作ValidationRule,但我看不到从Validate()函数访问单元格先前值的方法。

我将不胜感激任何帮助!

4

1 回答 1

0

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

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

于 2010-02-03T22:50:32.823 回答