拼吾爱程序人生

首页 » .Net编程 » Silverlight » 在Silverlight应用程序中进行数据验证
cobra - 2008-7-30 14:01:00
文/Terrylee  出处/博客园

概述
众所周知,在ASP.NET应用程序中,我们可以使用验证控件进行数据输入的验证,遗憾的是在Silverlight中并没有提供任何验证控件,但Silverlight对于双向数据绑定还是提供了一些基本的数据验证支持,我们可以在set设置器中定义验证规则,并对于不合法数据抛出异常,最后通过捕获验证错误事件来实现数据的验证。

本文将介绍在Silverlight应用程序中如何进行数据验证。

准备知识
Silverlight中如下两种情况下,将会触发验证错误:

1.在绑定引擎中执行数据转换时抛出异常

2.在业务实体的set设置器中抛出异常

为了在验证出错时能够接收到通知,我们必须要在绑定对象上设置如下两个属性为true:

ValidatesOnExceptions:告诉绑定引擎当有异常发生时创建一个验证异常

NotifyOnValidationError:告诉绑定引擎当有验证错误发生或者错误排除时触发BindingValidationError事件

这两个属性都定义在Binding类中,如下代码所示:


 附件: 您所在的用户组无法下载或查看附件

BindingValidationError事件定义在FrameworkElement中,通过它可以接收到ValidationErrorEventArgs类型的参数,而在ValidationErrorEventArgs中定义了一个很重要的属性Action,它的定义如下:


 附件: 您所在的用户组无法下载或查看附件

这里Added表示新增一个验证异常,Removed表示排除了一个验证异常。下面通过一个实例我们看一下如何使用它们进行数据的验证。

实例
首先我们编写一个简单的业务类,由于数据绑定验证只能在双向绑定中,所以这里需要实现INotifyPropertyChanged接口,如下代码所示,在set设置器中我们对于数据的合法性进行检查,如果不合法则抛出一个异常:

Code


编写数据绑定,如下代码所示,设置NotifyOnValidationError和ValidatesOnExceptions属性为true,并且定义BindingValidationError事件:

Code


实现BindingValidationError事件,在这里可以根据ValidationErrorEventAction来判断如何进行处理,在界面给出相关的提示信息等,如下代码所示:

Code


好了,现在来看一下最后的验证效果,如下图所示:


 附件: 您所在的用户组无法下载或查看附件


 附件: 您所在的用户组无法下载或查看附件



通过这样的方式,我们就可以在Silverlight中对于数据输入做验证了。

总结
本文介绍了如何在Silverlight应用程序进行数据验证,希望对大家有所帮助。

 您可能对 [Silverlight] 的这些文章也感兴趣:

Silverlight 2学习教程(二):开发简单的Silverlight 2应用程序
Silverlight 初体验
Silverlight 2学习教程(六): Silverlight托管代码调用Javascript中的JSON对象
Silverlight 初体验:画个会报告位置的机器人
一步一步学Silverlight 2系列(1):创建一个基本的Silverlight应用
在Silverlight中使用DynamicMethod(动态方法)
详解Silverlight 2中的独立存储(Isolated Storage)
Silverlight 中用 IronPython 创建和调用用户控件
MIX08发布中Silverlight相关安装的错误以及解决办法
Novell MoonLight:微软SilverLight领跑者
1
查看完整版本: 在Silverlight应用程序中进行数据验证
Modify by pin5i DZNT_ExpandPackage 2.1.3237 2007-2008 pin5i.com
  Total Unique Visitors: