2011-02-17 71 views
1

我来自Delphi编程世界,我开始学习Silverlight,实体框架,RIA服务,MVVM和所有这些东西。有没有在Silverlight中的控件中进行简单验证的方法

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

我的理解是不同的,你必须在你的业务类,你的服务,你的模型,你的域做验证,这取决于你使用的是什么,也取决于你的数据库。

任何想法的建议,可以帮助这个?

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

回答

1

验证在Silverlight是紧密联系在一起的结合,并且是最常见的两种主要方式之一进行:

  • 客户端验证使用DataAnnotation生成的验证在属性setter
  • 服务器端验证当一个实体致力于商店时完成

客户端验证器依赖于验证失败时在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

+0

谢谢你,Dave 所以不是真正的 - 时间验证:(只有正则表达式,哇,但如果是一件简单的事情,只是一种方式来告诉文本框看起来不允许输入超过20个字符长度的文本,难道是这样的: 拉蒙 – 2011-02-17 19:41:47

相关问题