Режим редактирования данных и проверка данных через сервис - PullRequest
0 голосов
/ 04 ноября 2011

Я получил datagrid(dg), который связан с наблюдаемой коллекцией POCO [Name(string), value(int), isReady(bool)]

Мне нужно разрешить редактирование имени, чтобы у моего DataGrid было <data:DataGridTemplateColumn.CellEditingTemplate>, которое содержит TextBox.

при совершении редактирования мне нужно вызвать службу WCF для проверки имени. Это то, что я делаю в CellEditEnded.

Но если имя недействительно, как я могу:

  1. Показать ошибку в сетке данных (поиск решения с помощью ValidatesOnNotifyDataErrors, но не может быть успешным)
  2. Переведите ячейку обратно в режим редактирования.

Вот почему я не могу подтвердить в POCO:

  1. DataGrid находится в режиме редактирования
  2. При двойном щелчке по ячейке метка, содержащая данные, становится TextBox. Я сейчас в режиме редактирования
  3. Я вставил ошибку. assynchronous validation запущен. DataGrid вернулся в режим отображения
  4. assync закончен, я поднял свою ошибку, но ничего не происходит (визуально я имею в виду), потому что ValidatesOnNotifyDataError s, похоже, не работает на этикетке.

И еще, поскольку я знаю, что есть ошибка, если я возвращаюсь в режиме редактирования, я получаю действительно странный экран, показывающий, что есть 1 Ошибка, и при входе в это состояние я не могу выйти из режима редактирования Я делаю ...

Thx

1 Ответ

0 голосов
/ 06 ноября 2011

(извините за мой плохой английский) Я бы порекомендовал вам не использовать событие grid для проверки ваших данных - сделайте это на своем установщике свойств POCO - он чище, проще в обслуживании, и если вы используете этот POCO с другим элементом управления, ваша проверка будет работать.

Поскольку вам необходим доступ к сервису для проверки значения, лучше всего реализовать интерфейс INotifyDataErrorInfo, который позволяет выполнять асинхронную проверку, смотрите здесь: http://weblogs.asp.net/fredriknormen/archive/2009/11/22/silverlight-4-and-asynchronous-validation-with-inotifydataerrorinfo.aspx и здесь http://www.silverlight.net/learn/data-networking/validation/asynchronous-data-validation

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...