技巧:在Silverlight应用程序中进行数据验证
2008-07-30 00:30
405 查看
本文首发于博客园,作者TerryLee,原文地址:技巧:在Silverlight应用程序中进行数据验证
本文将介绍在Silverlight应用程序中如何进行数据验证。
1.在绑定引擎中执行数据转换时抛出异常
2.在业务实体的set设置器中抛出异常
为了在验证出错时能够接收到通知,我们必须要在绑定对象上设置如下两个属性为true:
ValidatesOnExceptions:告诉绑定引擎当有异常发生时创建一个验证异常
NotifyOnValidationError:告诉绑定引擎当有验证错误发生或者错误排除时触发BindingValidationError事件
这两个属性都定义在Binding类中,如下代码所示:
BindingValidationError事件定义在FrameworkElement中,通过它可以接收到ValidationErrorEventArgs类型的参数,而在ValidationErrorEventArgs中定义了一个很重要的属性Action,它的定义如下:
这里Added表示新增一个验证异常,Removed表示排除了一个验证异常。下面通过一个实例我们看一下如何使用它们进行数据的验证。
编写数据绑定,如下代码所示,设置NotifyOnValidationError和ValidatesOnExceptions属性为true,并且定义BindingValidationError事件:
实现BindingValidationError事件,在这里可以根据ValidationErrorEventAction来判断如何进行处理,在界面给出相关的提示信息等,如下代码所示:
好了,现在来看一下最后的验证效果,如下图所示:
通过这样的方式,我们就可以在Silverlight中对于数据输入做验证了。
本文首发于博客园,作者TerryLee,原文地址:技巧:在Silverlight应用程序中进行数据验证
概述
众所周知,在ASP.NET应用程序中,我们可以使用验证控件进行数据输入的验证,遗憾的是在Silverlight中并没有提供任何验证控件,但Silverlight对于双向数据绑定还是提供了一些基本的数据验证支持,我们可以在set设置器中定义验证规则,并对于不合法数据抛出异常,最后通过捕获验证错误事件来实现数据的验证。本文将介绍在Silverlight应用程序中如何进行数据验证。
准备知识
Silverlight中如下两种情况下,将会触发验证错误:1.在绑定引擎中执行数据转换时抛出异常
2.在业务实体的set设置器中抛出异常
为了在验证出错时能够接收到通知,我们必须要在绑定对象上设置如下两个属性为true:
ValidatesOnExceptions:告诉绑定引擎当有异常发生时创建一个验证异常
NotifyOnValidationError:告诉绑定引擎当有验证错误发生或者错误排除时触发BindingValidationError事件
这两个属性都定义在Binding类中,如下代码所示:
BindingValidationError事件定义在FrameworkElement中,通过它可以接收到ValidationErrorEventArgs类型的参数,而在ValidationErrorEventArgs中定义了一个很重要的属性Action,它的定义如下:
这里Added表示新增一个验证异常,Removed表示排除了一个验证异常。下面通过一个实例我们看一下如何使用它们进行数据的验证。
实例
首先我们编写一个简单的业务类,由于数据绑定验证只能在双向绑定中,所以这里需要实现INotifyPropertyChanged接口,如下代码所示,在set设置器中我们对于数据的合法性进行检查,如果不合法则抛出一个异常:/// <summary> /// Author:TerryLee /// http://www.cnblogs.com/Terrylee /// </summary> public class Person : INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; private int _age; public int Age { get { return _age; } set { if (value < 0) throw new Exception("年龄输入不合法!"); _age = value; if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs("Age")); } } } private String _name = "Terry"; public String Name { get { return _name; } set { if (value.Length < 4) throw new Exception("姓名输入不合法!"); _name = value; if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs("Name")); } } } public void NotifyPropertyChanged(String propertyName) { if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); } } }
编写数据绑定,如下代码所示,设置NotifyOnValidationError和ValidatesOnExceptions属性为true,并且定义BindingValidationError事件:
<!-- http://www.cnblogs.com/Terrylee --> <StackPanel Orientation="Horizontal" Margin="10"> <TextBox x:Name="txtName" Width="200" Height="30" Text="{Binding Name,Mode=TwoWay, NotifyOnValidationError=true, ValidatesOnExceptions=true}" BindingValidationError="txtName_BindingValidationError"> </TextBox> <my:Message x:Name="messageName"></my:Message> </StackPanel> <StackPanel Orientation="Horizontal" Margin="10"> <TextBox x:Name="txtAge" Width="200" Height="30" Text="{Binding Age,Mode=TwoWay, NotifyOnValidationError=true, ValidatesOnExceptions=true}" BindingValidationError="txtAge_BindingValidationError"> </TextBox> <my:Message x:Name="messageAge"></my:Message> </StackPanel>
实现BindingValidationError事件,在这里可以根据ValidationErrorEventAction来判断如何进行处理,在界面给出相关的提示信息等,如下代码所示:
/// <summary> /// Author:TerryLee /// http://www.cnblogs.com/Terrylee /// </summary> void txtAge_BindingValidationError(object sender, ValidationErrorEventArgs e) { if (e.Action == ValidationErrorEventAction.Added) { messageAge.Text = e.Error.Exception.Message; messageAge.Validation = false; } else if (e.Action == ValidationErrorEventAction.Removed) { messageAge.Text = "年龄验证成功"; messageAge.Validation = true; } }
好了,现在来看一下最后的验证效果,如下图所示:
通过这样的方式,我们就可以在Silverlight中对于数据输入做验证了。
总结
本文介绍了如何在Silverlight应用程序进行数据验证,希望对大家有所帮助。更多Silverlight 2的文章请参考Silverlight 2 相关文章汇总。本文首发于博客园,作者TerryLee,原文地址:技巧:在Silverlight应用程序中进行数据验证
相关文章推荐
- 技巧:在Silverlight应用程序中进行数据验证
- 技巧:在Silverlight应用程序中进行数据验证 推荐
- 技巧:在Silverlight应用程序中进行数据验证
- 在Silverlight应用程序中进行数据验证
- 在Silverlight中进行基本的数据验证
- 数据输入验证---Silverlight商业应用程序开发学习笔记(13)
- SilverLight数据输入验证三:Visual Studio 2010调试Silverlight Validation调试设置技巧
- Silverlight商业应用程序开发学习笔记(13) 数据输入验证---
- js数据验证:jquery的validate,及进行重置操作时不显示异常提示
- 对用户输入的数据进行安全验证(Safe-Handling User Input)
- SpringMVC使用@Valid注解进行数据验证的方法
- Silverlight实例教程 - Validation用户提交数据验证捕获
- Silverlight实例教程 - Validation用户提交数据验证捕获
- Silverlight实例教程 – Datagrid,Dataform数据验证和ValidationSummary
- 50个Android开发技巧(09 避免用EditText对日期进行验证)
- EF Code First数据提交前进行模型验证/数据验证
- GridView使用技巧之:新增记录、GridView内数据验证、删除信息提示等
- jsData 使用教程(五) 对输入数据进行验证(服务端验证)
- ASP.NET MVC结合jQuery插件进行数据验证
- 使用文本文件(.txt)进行数据存取的技巧总结