技巧:在Silverlight应用程序中进行数据验证

技巧:在Silverlight应用程序中进行数据验证,第1张

概述本文首发于 博客园,作者 TerryLee,原文地址: 技巧:在Silverlight应用程序中进行数据验证 概述 众所周知,在ASP.NET应用程序中,我们可以使用验证控件进行数据输入的验证,遗憾的是在Silverlight中并没有提供任何验证控件,但Silverlight对于双向数据绑定还是提供了一些基本的数据验证支持,我们可以在set设置器中定义验证规则,并对于不合法数据抛出异常,最后通过捕 本文首发于 博客园,作者 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/// [url]http://www.cnblogs.com/Terrylee[/url]/// </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事件:
<!--    [url]http://www.cnblogs.com/Terrylee[/url]--><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,ValIDatesOnExceptions=true}"            BindingValIDationError="txtAge_BindingValIDationError">    </TextBox>    <my:Message x:name="messageAge"></my:Message></StackPanel>
实现BindingValIDationError事件,在这里可以根据ValIDationErrorEventAction来判断如何进行处理,在界面给出相关的提示信息等,如下代码所示:
/// <summary>/// Author:TerryLee/// [url]http://www.cnblogs.com/Terrylee[/url]/// </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应用程序中进行数据验证所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/web/1054490.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存