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. iOS开发-植入广告(iAd, Admob实例)

    应用中植入广告是一种非常好的盈利手段. 以下介绍主流的两种方法.iAd, Admob 先mark一个非常具体的pdf.   http://pan.baidu.com/share/link?sharei ...

  2. Fragmen的onAttach方法

    现在Android开发多使用一个Activity管理多个Fragment进行开发,不免需要两者相互传递数据,一般是给Fragment添加回调接口,让Activity继承并实现. 回调接口一般都写在Fr ...

  3. 安卓BitmapFactory.decodeStream()返回null的问题解决方法

    问题描述: 从网络获取图片,数据为InputStream流对象,然后调用BitmapFactory的decodeStream()方法解码获取图片,返回null. 代码如下: private Bitma ...

  4. Configuration.SectionGroups

    对于一个空的配置文件,默认自带的sectiongroups 默认有10个section节点 1 ConfigurationSectionGroupName=system.runtime.seriali ...

  5. 【POJ 2777】 Count Color

    [题目链接] http://poj.org/problem?id=2777 [算法] 线段树 [代码] #include <algorithm> #include <bitset&g ...

  6. P3225 [HNOI2012]矿场搭建 tarjan割点

    这个题需要发现一点规律,就是先按割点求块,然后求每个联通块中有几个割点,假如没有割点,则需要建两个出口,如果一个割点,则需要建一个出口,2个以上不用建. 题干: 题目描述 煤矿工地可以看成是由隧道连接 ...

  7. poj1611 并查集 (路径压缩)

    http://poj.org/problem?id=1611 题目大意: 有一个学校,有N个学生,编号为0-N-1,现在0号学生感染了非典,凡是和0在一个社团的人就会感染,并且这些人如果还参加了别的社 ...

  8. 自定义滚动条配合鼠标滚轮demo

    <!DOCTYPE html> <html> <head> <title></title> <meta charset="u ...

  9. [App Store Connect帮助]三、管理 App 和版本(4)创建新版本

    当您准备分发 App 的新版本时,您创建的新版本使用您为原始版本创建的 App 记录.该新版本将对购买过先前版本的顾客免费可用. 各版本使用的 Apple ID(App 标识符).SKU 和套装 ID ...

  10. 网络简要<入门篇>

    OSI七层 网络的含义:两个不在同一地理位置的主机(终端),通过传输介质和通信协议,实现通信和资源共享. 网络四要素:终端,传输介质 ,通信协议,资源 网络分类: 以范围分类:LAN网(局域网,以太网 ...