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. border-image 和 border-color 不能同时使用问题

    遇到如下问题: UI 给的设计,某部分,上边框为 图片,下边框为灰色横线. 看到这个的第一反应是,上边框用 border-image ,为了只让上边框显示图片,所以只给上边框宽度为所需宽度,我的图是 ...

  2. 客户端JavaScript基础 网页上的输入输出

    创建: 2017/10/06 完成: 2017/10/07   更新: 2017/10/15 增加了通过事件监听器登陆事件的方法的链接   # TODO: 补充 基于Canvas的图象 客户端Java ...

  3. E20170805-hm

    mechanize vt. 使机械化; 用机械装置;

  4. ural 1017. Staircases(dp)

    http://acm.timus.ru/problem.aspx?space=1&num=1017 题意:有n块砖,要求按照严格递增的个数摆放成楼梯,求楼梯的摆放种类数. 思路:状态转移方程: ...

  5. P3398仓鼠(LCA)

    题目描述 小仓鼠的和他的基(mei)友(zi)sugar住在地下洞穴中,每个节点的编号为1~n.地下洞穴是一个树形结构.这一天小仓鼠打算从从他的卧室(a)到餐厅(b),而他的基友同时要从他的卧室(c) ...

  6. [Swift通天遁地]四、网络和线程-(7)检测服务器接口的访问状态:验证请求结果和可访问性

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  7. Akka源码分析-Actor发消息

    前面两篇文章简单介绍了ActorSystem.actor以及dispatcher和mailbox的创建,下面我们就来看一下actor发消息的内部机制. val system = ActorSystem ...

  8. Python/Django 下载Excel2007

    一.前提 上一篇,我写了下载Excel2003的博文,这里写下载Excel2007的博文的原因有三: 第一.Excel2003基本已经淘汰了 第二.Excel2003下载文件太大,不利于网络传输 第三 ...

  9. Android数据存储的5种方法

    --使用SharedPreferences存储数据 --文件存储数据 --SQLite数据库存储数据 --使用ContentProvider存储数据 --网络存储数据 Preference,File, ...

  10. BZOJ 2300凸包+离线

    思路: 倒着加显然吧  动态维护这个凸包就好了 //By SiriusRen #include <bits/stdc++.h> using namespace std; ; int n,m ...