SilverLight学习笔记--实际应用(一)(4):手把手建立一个Silverlight应用程序之同步数据校验1

  现在我们的程序有了添加和删除以及修改功能,下面我们看一看如何让程序具备数据校验功能。我们将用两种方式实现数据的校验,一种是在客户端进行同步校验。另一种是在服务器端进行异步校验。
  本篇我们先实现如何在客户端进行同步校验。基本原理是:利用数据的双向绑定和INotifyPropertyChanged 接口以及控件的NotifyOnValidationError与ValidatesOnExceptions两个属性设置来配合实现客户端同步校验。
 现在继续修改完善我们的程序。
 1、修改用户界面如下:

Code

      在此界面中,我们不再是简单地进行绑定数据和显示数据,而是对DataGrid控件进行了改造,尤其是运用了模板来定义我们的Age字段。注意Age字段的CellEditingTemplate模板,它的两个属性:NotifyOnValidationError,ValidatesOnExceptions都必须设置为true,这样才会在绑定出错时报错,而对错误事件的处理则字义在BindingValidationError事件中。
2、修改Person类
在此类中加入绑定数据的校验工作。具体代码如下:

Code

Person类全部代码如下:

Code

  3、完成校验错误处理程序

Code

  Page.xaml.cs全部代码如下:

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;
using System.Windows.Browser; //因为要使用HtmlPage.Window.Alert(message));

namespace SLApplicationDataTest
{
    
public partial class Page : UserControl
    
{
        People mypeople;
        
public Page()
        
{
            InitializeComponent();

            
this.addButton.Click += new RoutedEventHandler(addButton_Click);
            
this.deleteButton.Click += new RoutedEventHandler(deleteButton_Click);
            
this.dgPeople.KeyDown += new KeyEventHandler(peopleDataGrid_KeyDown);



            Loaded 
+= new RoutedEventHandler(Page_Loaded);
        }


        
private void Page_Loaded(object sender, RoutedEventArgs e)
        
{
            
取得数据源数据并绑定到DataGrid控件上

        }


        
通过按钮添加新记录行

        
通过按钮删除记录

        
删除记录子程序

        
处理键盘响应事件


        
校验错误处理程序

    }

}

运行效果如下:
                         

前往:Silverlight学习笔记清单
本文程序在Silverlight2.0和VS2008环境中调试通过。本文参照了部分网络资料,希望能够抛砖引玉,大家共同学习。
(转载本文请注明出处)

posted @ 2009-09-11 08:28  wsdj  阅读(1354)  评论(10编辑  收藏  举报