Как использовать предыдущее значение при проверке записи в ячейке WPF DataGrid? - PullRequest
0 голосов
/ 04 февраля 2010

У меня есть WPF DataGrid. Я хотел бы ограничить значения, которые пользователь может вводить в конкретный столбец, например:

Значения столбца A могут только увеличиваться (новое значение> старое значение).

Значения столбца B могут только уменьшаться (новое значение <старое значение). </p>

Если введенное пользователем значение недопустимо, я хочу вернуться к предыдущему действительному значению.

Я думал, что мог бы сделать это в пользовательском ValidationRule, но я не вижу способа получить доступ к предыдущему значению ячейки из функции Validate().

Буду признателен за любую помощь!

1 Ответ

0 голосов
/ 04 февраля 2010

Вы должны выполнить эту логику на бизнес-уровне.Убедитесь, что для UpdateSourceTrigger не установлено значение PropertyChanged, поскольку это будет обновлять ваши значения при каждом нажатии клавиши.если значение равно 9 и пользователь вводит 10, обновление произойдет, когда пользователь введет значение 1, значение которого будет меньше 9, что приведет к сбросу значения на 9.

Лучшее решение - пометить поле как недействительноелегко, если вы привязываете к объекту) и показываете пользователю, что запись недействительна, вместо того, чтобы просто изменить то, что они только что ввели.Иногда это только одна буква, и они могут просто захотеть изменить это, чтобы сделать ввод действительным.

...