1. <UserControl x:Class="DataValidationSample.MainPage"
  2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4. xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  5. mc:Ignorable="d" d:DesignWidth="640" d:DesignHeight="480"
  6. xmlns:sdk="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data">
  7. <Grid x:Name="LayoutRoot">
  8. <sdk:DataGrid x:Name="Grid" CanUserReorderColumns="True"
  9. CanUserSortColumns="True" AutoGenerateColumns="False">
  10. <sdk:DataGrid.Columns>
  11. <!--声明列,并进行绑定-->
  12. <sdk:DataGridTextColumn
  13. Header="姓名" Width="auto">
  14. <sdk:DataGridTextColumn.Binding>
  15. <Binding Path="Name"
  16. Mode="TwoWay"
  17. UpdateSourceTrigger="Explicit"
  18. ValidatesOnExceptions="True"
  19. NotifyOnValidationError="True"/>
  20. </sdk:DataGridTextColumn.Binding>
  21. </sdk:DataGridTextColumn>
  22. <sdk:DataGridTextColumn
  23. Header="年龄" Width="auto">
  24. <sdk:DataGridTextColumn.Binding>
  25. <Binding Path="Age"
  26. Mode="TwoWay"
  27. ValidatesOnExceptions="True"
  28. NotifyOnValidationError="True"
  29. UpdateSourceTrigger="Explicit"/>
  30. </sdk:DataGridTextColumn.Binding>
  31. </sdk:DataGridTextColumn>
  32. <sdk:DataGridTextColumn
  33. Header="生日" Width="auto">
  34. <sdk:DataGridTextColumn.Binding>
  35. <Binding Path="Birthday"
  36. Mode="TwoWay"
  37. ValidatesOnExceptions="True"
  38. NotifyOnValidationError="True"
  39. UpdateSourceTrigger="Explicit"/>
  40. </sdk:DataGridTextColumn.Binding>
  41. </sdk:DataGridTextColumn>
  42. </sdk:DataGrid.Columns>
  43. </sdk:DataGrid>
  44. </Grid>
  45. </UserControl>
最后,在类用户控制的构造函数中设置数据源。
 
  1. public partial class MainPage : UserControl
  2. {
  3. ObservableCollection<Employee> Employs = null;
  4. public MainPage()
  5. {
  6. InitializeComponent();
  7. this.Employs = new ObservableCollection<Employee>();
  8. Employs.Add(new Employee { Name = "李小同", Age = 27, Birthday = new DateTime(1988, 12, 10) });
  9. Employs.Add(new Employee { Name = "南郭先生", Age = 43, Birthday = new DateTime(1976, 3, 12) });
  10. Employs.Add(new Employee { Name = "汤老头", Age = 36, Birthday = new DateTime(1978, 5, 1) });
  11. Employs.Add(new Employee { Name = "林大吉", Age = 28, Birthday = new DateTime(1987, 6, 21) });
  12. //绑定
  13. this.Grid.ItemsSource = Employs;
  14. }
  15. }
好了,请申出你的手指头,轻轻地按一下F5,把程序Run起来。
我们在年龄上选一条记录,进入编辑状态后,输入字母(应为整数),然后试着确认,看看发生了什么事?

在日期处也试试。

Silverlight之我见——DataGrid数据验证的更多相关文章

  1. Silverlight实例教程 - Validation数据验证DataAnnotation机制和调试技巧(转载)

    Silverlight 4 Validation验证实例系列 Silverlight实例教程 - Validation数据验证开篇 Silverlight实例教程 - Validation数据验证基础 ...

  2. Silverlight实例教程 - Validation数据验证基础属性和事件(转载)

    Silverlight 4 Validation验证实例系列 Silverlight实例教程 - Validation数据验证开篇 Silverlight实例教程 - Validation数据验证基础 ...

  3. Silverlight实例教程 - Validation数据验证开篇

    Silverlight 4 Validation验证实例系列 Silverlight实例教程 - Validation数据验证开篇 Silverlight实例教程 - Validation数据验证基础 ...

  4. Silverlight实例教程 – Datagrid,Dataform数据验证和ValidationSummary(转载)

    Silverlight 4 Validation验证实例系列 Silverlight实例教程 - Validation数据验证开篇 Silverlight实例教程 - Validation数据验证基础 ...

  5. Silverlight实例教程 - Validation用户提交数据验证捕获(转载)

    Silverlight 4 Validation验证实例系列 Silverlight实例教程 - Validation数据验证开篇 Silverlight实例教程 - Validation数据验证基础 ...

  6. Silverlight实例教程 - Validation服务器端异步数据验证(转载)

    摘要:本 篇实例,我们仍旧使用SilverlightValidationDemo项目,为了不和过去的验证方法冲突,这里我们创建一个新的数据成员类 Staff,该类实现INotifyDataErrorI ...

  7. Silverlight实例教程 - Validation客户端同步数据验证(转载)

    摘要:在Silverlight 4中,Silverlight Validation有相对的改进,本篇将介绍Silverlight 4中新加入的验证机制功能,IDataErrorInfo客户端同步验证机 ...

  8. Silverlight实用窍门系列:57.Silverlight中的Binding使用(二)-数据验证

    本文将简单讲述Silverlight中的Binding数据时的数据验证. NotifyOnValidationError:是否在出现异常/错误信息的时候激发BindingValidationError ...

  9. MVC Model数据验证

    概述 上节我们学习了Model的数据在界面之间的传递,但是很多时候,我们在数据传递的时候为了确保数据的有效性,不得不给Model的相关属性做基本的数据验证. 本节我们就学习如何使用 System.Co ...

随机推荐

  1. 浅析js的函数的按值传递参数

    js的函数传参的方式是按值传递,正常情况下,改变函数参数的值,并不会对函数外部的变量造成影响.例如: 'use strict';var list = [1, 2, 3]; list.forEach(f ...

  2. leecode 题解 || Merge k Sorted Lists 问题

    problem: Merge k sorted linked lists and return it as one sorted list. Analyze and describe its comp ...

  3. 【转载】java学习线路

    http://www.cnblogs.com/Leo_wl/p/5437059.html java基础(java编程思想) =>web开发(html/css/js  servlet/jsp 数据 ...

  4. ios7--UIImageView

    // // ViewController.m // 03-UIImageView的使用 // #import "ViewController.h" @interface ViewC ...

  5. mysql创建用户,并授予权限

    mysql> GRANT ALL PRIVILEGES ON *.* TO jiqing@"%" IDENTIFIED BY '123456'; Query OK, 0 ro ...

  6. luogu 3690 【模板】 Link Cut Tree (动态树)

    原来的代码有一些问题. 主要是对于不一定存在的边如何去判断,首先要保证在一个splay里,然后保证彼此之间直接联通且x的右儿子是空的 #include<iostream> #include ...

  7. 在eclipse中如何在大量项目中查找指定文件(转载)

    转载:http://blog.csdn.net/inowcome/article/details/6699227 在eclipse中如果希望在大量的项目中寻找指定的文件可不是一件轻松的事,还好ecli ...

  8. MAC应用无法打开或文件损坏的处理方法

    在MAC下安装一些软件时提示"来自身份不明开发者",其实这是MAC新系统启用了新的安全机制.默认只信任 Mac App Store 下载的软件和拥有开发者 ID 签名的应用程序.换 ...

  9. ACM_Power Mouth

    Power Mouth Time Limit: 2000/1000ms (Java/Others) Problem Description: Your task is to calculate the ...

  10. C# 自己用到的几个参数转换方法

    /// <summary> /// Method:CommandHelper /// Author:Liuyangyi /// Data:2016-05-10 /// </summa ...