Есть ли способ иметь простую проверку в элементах управления в Silverlight - PullRequest
1 голос
/ 17 февраля 2011

Я из мира программирования Delphi, начинаю изучать Silverlight, Entity Framework, RIA Services, MVVM и все такое.

Я хочу знать, есть ли какая-то техника, элементы управления, подход, шаблон или что-то еще, что позволяет вам выполнять некоторые простые проверки или проверки в реальном времени на клиенте, когда пользователь печатает. В мире Delphi элементы управления (DB-Aware) имеют возможность сделать это, они знают, какой тип данных они показывают, вы можете настроить максимальную длину, в общем, они знают некоторую информацию о таких данных, как эта тип с плавающей точкой не допускает в нем более одной точки и т. д.

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

Есть какие-нибудь мысли, которые могут помочь с этим?

Извините, мой английский не является моим основным языком.

1 Ответ

1 голос
/ 17 февраля 2011

Проверка в Silverlight тесно связана с привязкой и чаще всего выполняется одним из двух основных способов:

  • Проверка на стороне клиента с использованием созданных DataAnnotation валидаторов в установщиках свойств
  • Проверка на стороне сервера выполняется, когда объект фиксируется в хранилище

Средства проверки на стороне клиента зависят от исключений, выдаваемых в установщике при сбое проверки.Проверка на стороне сервера возвращает уведомления при сбое валидатора.Для этого есть две опции binidng: ValidatesOnExceptions (на стороне клиента) и NotifyOnValidationError (на стороне сервера.)

Звучит так, как будто вы хотите получить проверку в реальном времени при вводе.Наиболее практичным приложением для этого будет проверка правильности форматирования, например, для адресов электронной почты или номеров социального страхования.Обычно это делается с помощью валидаторов регулярных выражений.

Короткая история - нет, для этого типа валидации нет ничего «из коробки», но это можно сделать.Валидация применяется на уровне свойств с использованием DataAnnotations:

http://msdn.microsoft.com/en-us/library/dd901590(v=vs.95).aspx

. Вы можете использовать атрибут RegularExpressionAttribute для проверки свойства текста по регулярному выражению.Однако при нормальных условиях ваше значение будет проверено только после обновления, то есть только тогда, когда вы отойдете от проверяемого элемента управления.Вы можете использовать параметр привязки UpdateSourceTrigger=Explicit для проверки при вводе:

http://msdn.microsoft.com/en-us/library/system.windows.data.binding.updatesourcetrigger(v=vs.95).aspx

Вот хороший обзор проверки данных в Silverlight:

http://www.devproconnections.com/article/silverlight-development/Silverlight-Data-Validation.aspx

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