SilverLight学习笔记--Silverlight之数据校验的实现 (转载)
2011-11-08 13:35
756 查看
http://www.cnblogs.com/jv9/archive/2010/09/25/1834274.html 比较全。
在"SilverLight学习笔记--Silverlight之数据绑定初探 "一文中我们探讨了Silverlight界面控件的数据绑定,
在"SilverLight学习笔记--Silverlight中INotifyPropertyChanged 接口在数据绑定中的使用 "一文中我们探讨了如何使用INotifyPropertyChanged 接口实现数据绑定的同步和更新。
在此,我们将利用上面两篇文章所打好的基础来实现Silverlight在双向绑定由目标到数据源更新数据的过程中,对数据的校验实现。
参阅MSDN我们知道,当遇到以下两种情况时,Silverlight将会报告数据验证错误。
1、转换绑定数据时抛出异常。
2、绑定数据源对象的set访问器抛出异常。
为了获取这些数据验证错误信息,必须将绑定对象的ValidatesOnExceptions属性和NotifyOnValidationError属性设为True。
如本例将用到的TextBox控件定义
<TextBox x:Name="txtBxScore" FontFamily="Georgia" FontSize="18" HorizontalAlignment="Left"
VerticalAlignment="Bottom" Margin="10" Width="150" Height="40"
TextWrapping="Wrap"
Text="{Binding ClassScore, Mode=TwoWay, NotifyOnValidationError=True, ValidatesOnExceptions=True}"
BindingValidationError="txtBxScore_BindingValidationError"/>对上面的定义说明如下:
i、将ValidatesOnExceptions属性设为True可以让绑定引擎在异常抛出时产生一个验证错误信息。
ii、将NotifyOnValidationError属性设为true可以通知绑定引擎当遇到验证错误时,触发BindingValidationError事件(即上面的BindingValidationError="txtBxClassName_BindingValidationError" )。
iii、对于BindingValidationError事件,可以为目标对象或者其父节点创建一个事件响应函数,来捕获该事件,从而对数据绑定出现异常的情况做出应对。
iv、BindingValidationError事件是一个路由事件,因此,不必让真正产生异常的那个对象处理BindingValidationError事件。BindingValidationError事件触发后将会向上冒泡传递,直至它被处理,所以可以在父节点上添加事件响应函数(在本例中,可以在存放TextBox控件的StackPanel控件中设置BindingValidationError相关事件)。
下面,开始我们的示例部分。
还是照常,先新建一个Silverlight应用程序命名为:SLValidation。
在此程序,我们将建立一个课程成绩输入界面,Page.xaml代码如下:
using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.ComponentModel;//引入此空间后才能使用INotifyPropertyChanged接口
namespace SLValidation
注意:数据源类的定义说明如下:
i、它必须继承自INotifyPropertyChanged接口。
ii、在它的属性的Set代码段中需要定义如何进行校验以及在何种情况下抛出异常。
建立好界面和定义数据源后程序如下图:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
namespace SLValidation
注意:我们需要在此处加入对数据绑定异常的处理代码即BindingValidationError事件代码。
在绑定出错的情况下,程序显示如下图:
前往:Silverlight学习笔记清单
本文程序在Silverlight2.0和VS2008环境中调试通过。本文参照了部分网络资料,希望能够抛砖引玉,大家共同学习。
(转载本文请注明出处)
在"SilverLight学习笔记--Silverlight之数据绑定初探 "一文中我们探讨了Silverlight界面控件的数据绑定,
在"SilverLight学习笔记--Silverlight中INotifyPropertyChanged 接口在数据绑定中的使用 "一文中我们探讨了如何使用INotifyPropertyChanged 接口实现数据绑定的同步和更新。
在此,我们将利用上面两篇文章所打好的基础来实现Silverlight在双向绑定由目标到数据源更新数据的过程中,对数据的校验实现。
参阅MSDN我们知道,当遇到以下两种情况时,Silverlight将会报告数据验证错误。
1、转换绑定数据时抛出异常。
2、绑定数据源对象的set访问器抛出异常。
为了获取这些数据验证错误信息,必须将绑定对象的ValidatesOnExceptions属性和NotifyOnValidationError属性设为True。
如本例将用到的TextBox控件定义
<TextBox x:Name="txtBxScore" FontFamily="Georgia" FontSize="18" HorizontalAlignment="Left"
VerticalAlignment="Bottom" Margin="10" Width="150" Height="40"
TextWrapping="Wrap"
Text="{Binding ClassScore, Mode=TwoWay, NotifyOnValidationError=True, ValidatesOnExceptions=True}"
BindingValidationError="txtBxScore_BindingValidationError"/>对上面的定义说明如下:
i、将ValidatesOnExceptions属性设为True可以让绑定引擎在异常抛出时产生一个验证错误信息。
ii、将NotifyOnValidationError属性设为true可以通知绑定引擎当遇到验证错误时,触发BindingValidationError事件(即上面的BindingValidationError="txtBxClassName_BindingValidationError" )。
iii、对于BindingValidationError事件,可以为目标对象或者其父节点创建一个事件响应函数,来捕获该事件,从而对数据绑定出现异常的情况做出应对。
iv、BindingValidationError事件是一个路由事件,因此,不必让真正产生异常的那个对象处理BindingValidationError事件。BindingValidationError事件触发后将会向上冒泡传递,直至它被处理,所以可以在父节点上添加事件响应函数(在本例中,可以在存放TextBox控件的StackPanel控件中设置BindingValidationError相关事件)。
下面,开始我们的示例部分。
还是照常,先新建一个Silverlight应用程序命名为:SLValidation。
在此程序,我们将建立一个课程成绩输入界面,Page.xaml代码如下:
using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.ComponentModel;//引入此空间后才能使用INotifyPropertyChanged接口
namespace SLValidation
注意:数据源类的定义说明如下:
i、它必须继承自INotifyPropertyChanged接口。
ii、在它的属性的Set代码段中需要定义如何进行校验以及在何种情况下抛出异常。
建立好界面和定义数据源后程序如下图:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
namespace SLValidation
注意:我们需要在此处加入对数据绑定异常的处理代码即BindingValidationError事件代码。
在绑定出错的情况下,程序显示如下图:
前往:Silverlight学习笔记清单
本文程序在Silverlight2.0和VS2008环境中调试通过。本文参照了部分网络资料,希望能够抛砖引玉,大家共同学习。
(转载本文请注明出处)
相关文章推荐
- SilverLight学习笔记--Silverlight之数据校验的实现
- SilverLight学习笔记--使用WebClient实现通讯(一)(上传和下载字符串数据)
- Silverlight 学习笔记——MVVM模式实现主从数据显示
- WPF and Silverlight 学习笔记(二十二):使用代码实现绑定、绑定数据的验证
- WPF and Silverlight 学习笔记(二十二):使用代码实现绑定、绑定数据的验证
- Silverlight 学习笔记——MVVM模式实现主从数据显示 ---转
- SilverLight学习笔记--使用WebClient实现通讯(一)(上传和下载字符串数据)
- Silverlight 学习笔记——MVVM模式实现主从数据显示
- WPF and Silverlight 学习笔记(二十二):使用代码实现绑定、绑定数据的验证
- WPF and Silverlight 学习笔记(二十五):使用CollectionView实现对绑定数据的排序、筛选、分组
- [转]WPF and Silverlight 学习笔记(二十五):使用CollectionView实现对绑定数据的排序、筛选、分组
- Silverlight 学习笔记——MVVM模式实现主从数据显示
- WPF and Silverlight 学习笔记(二十五):使用CollectionView实现对绑定数据的排序、筛选、分组
- 【数据分析 R语言实战】学习笔记 第六章 参数估计与R实现(上)
- Silverlight学习笔记一(理解一下机制,使用一下布局,实现一个简单的用户登录)
- Silverlight商业应用程序开发学习笔记(13) 数据输入验证---
- 数据结构 学习笔记之:顺序栈的C语言实现
- ES学习笔记-elasticsearch-hadoop导入hive数据到es的实现探究
- Jamendo学习笔记之七:搜索页面实现及数据加载
- mybatis学习笔记二(实现数据的增删改查)