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. 从es中提取全量数据的shell脚本

    [root@hadoop3 xiaole_chk_url]# sh looh.es.res.sh 100 200 1 % Total % Received % Xferd Average Speed ...

  2. uoj#34

    模板 #include<bits/stdc++.h> #define pi acos(-1) using namespace std; ; int n, m, L, x; int r[N] ...

  3. Rails5 Route Document

    创建: 2017/06/29 完成: 2017/06/29 更新: 2017/06/30 最开头的有效路径展示补充网页版 更新: 2017/07/21 修正错别字 更新: 2017/09/02 增加m ...

  4. 对于Mobile模块化的概念认知(小白)

    最近刚刚学习了Mobile的一些基础知识,把它整理一下方便自己的学习 那什么是Mobile呢? 自己的理解是将一个项目中共同的部分抽出来,这样就形成了Mobile模块. 为什么要使用Mobile呢? ...

  5. BZOJ 4811 树链剖分+线段树

    思路: 感觉这题也可神了.. (还是我太弱) 首先发现每一位不会互相影响,可以把每一位分开考虑,然后用树链剖分或者LCT维护这个树 修改直接修改,询问的时候算出来每一位填0,1经过这条链的变换之后得到 ...

  6. 【NOIP练习赛】开车

    [NOIP练习赛]T2.开车 Description 老司机小 Q 要在一个十字路口指挥车队开车,这个十字路口可 以描述为一个 n*n 的矩阵,其中第 2 行到第 n-1 行都各有一道横向车 道,第 ...

  7. ACM_Mystery

    Mystery Time Limit: 2000/1000ms (Java/Others) Problem Description: No Description Input: The first l ...

  8. Application、Activity Stack 和 Task的区别

    Application类 Application和Activity,Service一样是Android框架的一个系统组件,当Android程序启动时系统会创建一个Application对象,用来存储系 ...

  9. Algebrizer

    Microsoft SQL Server 2012 Internals 把 SQL 语句的处理分为四个阶段,分别是 解析.绑定.优化.执行,如图所示:     解析(Parse)主要是语法分析,比较简 ...

  10. P1418 选点问题

    题目描述 给出n个点,m条边,每个点能控制与其相连的所有的边,要求选出一些点,使得这些点能控制所有的边,并且点数最少.同时,任意一条边不能被两个点控制 输入输出格式 输入格式: 第一行给出两个正整数n ...