有没有办法在Silverlight中的控件中进行简单验证

时间:2011-02-17 18:37:52

标签: mvvm silverlight-4.0 validation

我来自Delphi编程世界,我开始学习Silverlight,实体框架,RIA服务,MVVM等等。

我想知道是否有某种技术,控件,方法,模式或其他东西允许您在用户输入时在客户端中进行一些简单的验证或验证。在Delphi世界中,控件(DB-Aware)具有这样做的能力,他们知道哪个是他们显示的数据类型,你可以配置最大长度,一般来说他们知道一些关于数据的信息,比如说浮点类型不允许多于一个点,依此类推。

我理解不同,您必须在您的业务类,服务,模型,域中进行验证,这取决于您使用的内容以及数据库中的内容。

任何有助于此的想法建议?

对不起我的英语不是我的主要语言。

1 个答案:

答案 0 :(得分:1)

Silverlight中的验证与绑定密切相关,最常见的有两种主要方式之一:

  • 使用属性设置器中的DataAnnotation生成的验证器进行客户端验证
  • 当实体提交到商店时完成的服务器端验证

客户端验证程序依赖于验证失败时在setter中抛出的异常。验证程序失败时,服务器端验证会返回通知。这个的两个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