Silverlight 数据验证

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Silverlight 数据验证

本文引用自

/jv9/archive/2010/09/10/182

2910.html

页面有实例的源代码下载:

说起来Validation验证功能,相信大家都不陌生,在应用中,当需要用户交互输入时,开发人员都会加入一些验证代码,这样可以有效的避免应用异常出现,也可以使应用的错误提示信息清晰明了的显示在客户端,有利于异常定位,同时也提高用户体验。特别是在商业应用项目中,使用Validation功能,可以在数据存入存储设备前,进行格式,以及内容的校验,这样也提高了数据存储的安全性。

下面的的验证控件演示,是传统Web应用中最常见的验证效果,其中包括Requ ired Field Validator,Range Validator等验证控件,

Ajax Validation:

而Silverlight同样提供类似于验证控件的支持,在Silverlight Toolkit开源项目中,包含Data Input的Validation演示,

简单数据绑定验证,

下图为ValidationSummary控件演示:

为了帮助大家学习和掌握Silverlight的Validation功能,随后的几篇,我将详细介绍一下S ilverlight的Validation功能,并将结合一些实例演示帮助大家理解Validation验证功能。本系列应用开发环境是:

Windows 7 Ultimate 英文版

Visual Studio 2010 Premium 英文版

Expression Blend 4 Premium 英文版

Silverlight 4

Validation验证概述

Validation,是验证,校验的意思,通常发生在用户输入数据后,进行验证判断,以确认用户输入正确信息。在验证的方法中,我们可以简单的从两个验证类型理解Validation,

1. 语法验证,该验证类型是通过成员的数据类型定义对比验证当前输入数据类型得出的验证结果;

例如,定义一个int类型,而赋值是string时,则会返回错误异常,验证控件,将获取该异常信息反馈到客户端;

1publicint Zip {get;set}

语法验证经常发生在数据改变之前,其表现方式会在UI中体现;

2. 语义验证,该验证类型是将当前输入数据根据特定数据限制代码进行验证;

例如:指定某TextBox为必须输入,或者限定某TextBox内容长度,或者使用正则表达式控制其输入内容,最典型的例子是对电子邮件地址的验证:

语义验证通常会发生在数据改变之后,其表现方式可以由开发人员控制,不一定会在UI中体现;

一个简单的数据绑定,异常捕获验证时序图,本篇,不计划讲解该图,我将在随后的实例中,解释该验证原理。

现在,我们将创建一个新的实例项目,SilverlightValidationDemo

在MainPage,创建简单的用户交互界面:

另外需要准备一个简单的数据成员类,方便随后的演示,

在实例演示前,我们仍旧需要先学习一下Silverlight的Validation数据验证框架基础属性和事件,

首先需要了解的是

BindingValidationError事件

该事件是一个路由事件,当数据验证错误出现时,将绑定该错误到数据源;也可以简单的理解为绑定错误到数据源的一个行为。该事件可在控件本身调用,也可在其父控件中调用。例如,在TextBox中,可以声明调用BindingValidationError,或者可以该TextBox的父容

器控件Grid,StackPanel中调用BindingValidationError事件。这里需要注意的是,如果在Silverlight的MVVM设计模式下,仅在被验证的控件本身激活BindingValidationError 事件,才能正常的被UI捕获到错误信息,不支持在父控件中对BindingValidationError事件进行调用。

为了保证Validation的灵活性,微软同时提供了相关属性,来控制BindingValidationErro r事件的调用。NotifyOnValidationError和ValidatesOnExceptions属性。NotifyOnValidationError属性

该属性的功能,是当验证错误出现时是否激活BindingValidationError事件;该属性是Sil verlight独有的验证属性之一,经常和ValidatesOnExceptions属性配合使用。ValidatesOnExceptions属性

该属性的功能,数据绑定引擎是否捕获显示异常错误作为验证错误。简单的理解,在控件绑定数据时,出现数据源异常抛出,或者数据类型转换时异常抛出,是否作为Validation验证显示在客户端。如果是True,则会按照Validation传统的处理方式,弹出一个红色说明标签,内容是异常错误信息,反之,则不捕获异常作为Validation。

对于Silverlight开发新手而言,初次看到以上概念,会有混淆,请继续看下面实例,结合实例来理解以上的属性和事件使用方法。

首先,我们在MainPage中,将我们起初定义的User类添加作为一个静态数据源,

1xmlns:local="clr-namespace:SilverlightValidationDemo"

1

2

3

对于控件数据绑定,在Visual Studio中可以通过视图设定,也可以直接敲入代码设定,这里,我们使用视图的方法,减少代码输入量,

在MainPage中,选中txtUserName文本框,右键选择属性,

在属性框中,设置绑定数据源,

相关文档
最新文档