У меня есть DataGrid (в настоящее время версия .NET 3.5 WPFToolkit, но при необходимости я могу использовать готовую DataGrid .NET 4.0), привязанную к коллекции объектов.Три столбца в сетке данных представляют фрагменты информации, используемые в качестве ключа для получения другой информации из базы данных.Эта другая информация используется в вычислениях для заполнения других столбцов таблицы данных.
Как только пользователь вводит эти три поля и комбинация данных в этих полях существует в базе данных, строка считается действительной длядобавление в коллекцию.Пользователь также теперь может свободно редактировать другие столбцы в строке.Когда пользователь получает данные из любого другого столбца, три «ключевых» поля считаются «заблокированными» - пользователь больше не может их редактировать.Единственный способ изменить эту информацию - удалить всю строку и добавить новую строку.
1) Как лучше всего с точки зрения UX справиться с этим?Должен ли я разрешить пользователю вводить данные в любой столбец, «кэшировать» их записи, а затем все мои вычисления будут выполняться сразу после ввода «ключевых» данных?Или я должен ограничить пользователя, чтобы он сначала вводил только данные «ключа», а затем разрешил пользователю вводить данные в другие столбцы?
2) Какова стратегия (необходимые обработчики событий и т. Д.) ДляРеализовав вышесказанное в сетке данных?Как не разрешить добавление новой строки в коллекцию с привязкой данных до тех пор, пока она не будет иметь действительных данных «ключа», или разрешить добавление новой строки с ошибками проверки и каким-либо образом отследить, что пользователь может продолжитьредактировать «ключевые» столбцы частично полной строки, но не других существующих строк в сетке данных?