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. _stdcall与_cdecl

    _cdecl(C Declaration的缩写)是C/C++和MFC程序默认使用的调用约定,因此可以省略,也可以在函数声明时加上_cdecl关键字来手工指定.采用_cdecl约定时,函数参数按照从右到 ...

  2. Cache-control no-transform Robots Exclusion Protocol

    蜘蛛协议 <今日头条>支持蜘蛛协议(Robots Exclusion Protocol)"ToutiaoSpider",同时,我们尊重所有的网络媒体,如媒体不希望内容被 ...

  3. MapReduce01

    ================== Hadoop内核 | MapReduce(分布式计算框架) ================== 源于Google的MapReduce论文 ----------& ...

  4. TGraphicControl和TCustomControl自绘过程的理论解释

    TGraphicControl = class(TControl) // 这个类实在是简单,因为所有事情都已经委托给它的父Win控件了,只要管自己即可 private FCanvas: TCanvas ...

  5. Android 触摸提示音【转】

    本文转载自:http://blog.csdn.net/Jin_HeZai/article/details/46791567 近期任务,涉及Android触摸提示音. 首先,定位源码目标.很显然的,在原 ...

  6. Java 数组的 12 个方法

    1.  声明一个数组 String[] aArray = new String[5]; String[] bArray = {"a","b","c&q ...

  7. 支持HTTP2的cURL——基于Alpine的最小化Docker镜像

    cURL是我喜欢的开源软件之一.虽然cURL的强大常常被认为是理所当然的,但我真心地认为它值得感谢和尊重.如果我们的工具箱失去了curl,那些需要和网络重度交互的人(我们大多数人都是这样的)将会陷入到 ...

  8. E20170928-hm

    deploy   vt. (尤指军事行动) 使展开; 施展; 有效地利用;部署 bate   vt. 减轻; 压制; 减去; 使软化;             vi. <方> 减少; 减弱 ...

  9. mysql中 groupby分组

    引用自http://www.cnblogs.com/mo-beifeng/archive/2012/02/07/2341886.html#2341105 --按某一字段分组取最大(小)值所在行的数据 ...

  10. codevs1369 xth 砍树(线段树)

    1369 xth 砍树  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond     题目描述 Description 在一个凉爽的夏夜,xth 和 rabbi ...