实际应用中,我们经常需要对输入信息进行验证,验证他们是否为空,验证输入字符串长度是否合适、输入数字类型是否正确。有时候会习惯性的用MessageBox.Show,并不是说这个不好,只是如果需要验证的
实际应用中,我们经常需要对输入信息进行验证,验证他们是否为空,验证输入字符串长度是否合适、输入数字类型是否正确。有时候会习惯性的用MessageBox.Show,并不是说这个不好,只是如果需要验证的字段有好几个,每个都是用弹出框,会让用户感到厌倦。
Silverlight之Validation数据验证为我们提供了一种比较的清晰验证方法。
首先,我们要了解它的概念:
BindingValidationError事件
该事件是一个路由事件,当数据验证错误出现时,将绑定该错误到数据源;也可以简单的理解为绑定错误到数据源的一个行为。该事件可在控件本身调用,也可在其父控件中调用。例如,在TextBox中,可以声明调用BindingValidationError,或者可以该TextBox的父容器控件 Grid,StackPanel中调用BindingValidationError事件。这里需要注意的是,如果在Silverlight的MVVM设计模式下,仅在被验证的控件本身激活BindingValidationError事件,才能正常的被UI捕获到错误信息,不支持在父控件中对 BindingValidationError事件进行调用。
为了保证Validation的灵活性,微软同时提供了相关属性,来控制BindingValidationError事件的调用。NotifyOnValidationError和ValidatesOnExceptions属性。
NotifyOnValidationError属性
该属性的功能,是当验证错误出现时是否激活BindingValidationError事件;该属性是Silverlight独有的验证属性之一,经常和ValidatesOnExceptions属性配合使用。
ValidatesOnExceptions属性
该属性的功能,数据绑定引擎是否捕获显示异常错误作为验证错误。简单的理解,在控件绑定数据时,出现数据源异常抛出,或者数据类型转换时异常抛出,是否作为Validation验证显示在客户端。如果是True,则会按照Validation传统的处理方式,弹出一个红色说明标签,内容是异常错误信息,反之,则不捕获异常作为Validation。
这是一个非常简单的小例子。虽然简单但是结合它看属性会比较易懂。
当然,我们也可以自己写事件
本站技术原创栏目文章均为中睿原创或编译,转载请注明:文章来自中睿,本站保留追究责任的权利。