效果图,当放鼠标到文本框上会显示出错的提示。

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAbMAAAEKCAIAAAAXSixtAAALZklEQVR4nO3c3XNU9R3A4fwlXOfSy85w422n2tJVFK2tTOlNL+hVa6Ydq1FQ3l+0oCEFAXkRESi+8FKTKjrO2JnWVmu1YxlwuKhQsuSNJEJsoBebTXa/ezZvbM7ZPT7P/G485+yes3H2k995CW3nAKjWdu7cuW8AGuTDZctaaCR+BGUEGizz2Ckj0HQyj50yAk0n89gpI9B0Mo+dMgJNJ/PYKSPQdDKPnTICjdE+HzO/VeaxU0agMZqtjLfL5rhcGYHGa7YyJkaw4Vm8ozL+/eNPjp54a9ax7YV9pXH0xFu/fGLzXz76+ObNmwv8v0QTO99daG9vL3Sfb6V99XSkdswtatbezX3LBmarMoWLkcU7KuM7596/0tc/3/Hp5/8eHR2d48+aRdDTUfr93tEzw0al9MyyUdJL5l6Z0nEkbF9aUbvniuXKmJrmLGNlEBcji3daxlu3JuqPWxMT/yuNyuX/+OyLkZGROf6sWQSlGBQKMwWhp6O9UCjMr4wLO5DaPdQrd71g3vkxKOMMmraMizdbbEwZdx9576ldf3y6++zTu8+u3Xt67f7Tzxx8a+/Jd27c+LpY7CuN0dGRW7cmVq1/8/UP/qWMWevpaG9v7+joqJ+Z892F9kJ39wxbNPBI4i7KYYwrStPERh+PMs6macvY7HPG9S/1Ll9z+MF1B1dsOvCj5/b9eOdLj+7avfX46eHhoVDGn+88fupvnypj1kpl7DnfXajThJ6O9vZCd8+ilCjhUKr3UTqsQs3J8iJdxVTG2TRnGZv9OuOtWxPbDr2zavtrP9t5ZNULhx7esXvFzq6Hdu3YcvyN2jL+Yv+Rs//8+KNPPlPGTPWU54KlAp4Pq893F9rbO3qS52jTE7qEWV1P9SRzOjrli5bJGaw6hsm9dtesCAmb/74SPkCh+3xiGet/yoSU1y5anNltVpqwjM1+b7pUxhePv7dq5+EHtu3+3qbn792+7Qc7tvzwxY3rjx0fHh4KVx5/dXx/zxcfffjXT5QxU9NR6Uk4X55aVvv9DsFIzkZNrXoqUlXzkpjGqZ3GvceCLWBfVdGsUvG+9bYpv09NSWuviuYrjE1XxhZ4nrFUxo2Hz353/e/u2bL93ue2LnthU2HXhuW71204cbR2zvj4mV3vXvyzMmatIio1Z9QVC5LKmHB+G/MU/jNhi4Q0Ti2YfovqFTUTs/nvK+Fue/lVUx8r6Y58WJYwdy0UCjNMZxdVcumT3MkuGrVlAyd0KYzEjzCPMq458MY9W7Z///mty3Zuvq97w/I9z67Yt2bTyVdry7jm3Pb3L32gjFmr/OaGMFWWcg5Tnzmc4YYz1bqnzz0zHlqd+et89pX8cZK2qb3AUNXlqg89eUGi8rpEmmFMqYyN2kvmsUu1jM+8cnLZjs2Fro33/37dg/vWPnTgqUcOP7HlzcPDQ0PFYrFY7Ovr6xsaGhwbG71+ffjGja+VMWvVX93KL3rVmqSUJJ1rzuHaX9x51cKK7FSvjNcOa6/uzWdfdW61zGWbpPlraatyESt+o6QaxhaTeexSLeOzr54odG24f/e6B/euffhg5yOv/PbRo7/Zdurg0OBgX19fX9/Vq1evDgz0X78+PDg4ODY2poxZqxeVpPljzeWzqh7O9a5I3Hn1wqlFidcSk1YsYF/1ZsALKGP1pdiKSw9TP0RhTJZ57FIt4/pjx5fveXbF/qcfPtj5k1cfX/nar3964rHtZ14eGOgfGxsbHR25fv360NDQwMBAf3//6OioMmYtzmomv/cdIQtJOQjVaEwZq26f1E4nJx+sTHrNvOeMdZ4en3mbmncv/2QqKziZxtrPwLTMY5dqGfecPL3xD0c3v35ky5uvbD11aNvpA9vPvLz/1Ov9165duXL58uXLX3311dWr/7127VqxWBwdHVHGrNWc703PBmd49iT5HkhDyjj9VznJzUxYsYB9TR5v0n3oudyBqb02WigU4hQ78VApyzx2qZbxxo2vh4eHpsfQ0ODgQP+1a4ODA0NDg6WpYimLytgcEq6E1d4zTr45Ey4wdjdmzph4a7l6p8mvmN++Ei+SxkfK6zy1E956aqsZf1MQZB67lMr46T8/23vo2HzH273n/IsSmar3FGPit7/e84ANvM74TfJcbeYVd3JNs6z8tHvd7tVPXc0TS1PvLYz1ZR67lMo4Pj5+6dKlL+fpypUr4+Pji/BjB5pa5rFLqYwA3yrKCBApI0CkjACRMgJEyggQKSNApIwAkTICRMoIEM1Uxs8B8m4hZbwNkF/KCBApI0CkjACRMgJEyggQKSNApIwAkTICRMoIECkjQKSMAJEyAkTKCBApI0CkjACRMgJEyggQKSNApIwAkTICRMoIECkjQKSMAJEyAkTKCBApI0CkjACRMgJEyggQKSNApIwAkTICRMoIECkjQKSMAJEyAkTKCBApI0CkjACRMgJEyggQKSNApIwAkTICRMoIECkjQKSMAJEyAkTKCBApI0CkjACRMgJEyggQKSNApIwAkTICRMoIECkjQKSMAJEyAkTKCBApI0CkjACRMgJEyggQKSNApIwAkTICRMoIECkjQKSMAJEyAkTKCBApI0CkjACRMgJEyggQKSNApIwAkTICRMoIECkjQKSMAJEyAkTKCBApI0CkjACRMgJEyggQKSNApIwAkTICRMoIECkjQKSMAJEyAkTKCBApI0CkjACRMgJEyggQKSNApIwAkTICRMoIECkjQKSMAJEyAkTKCBApI0CkjACRMgJEyggQKSNApIwAkTICRMoIECkjQKSMAJEyAkTKCBApI0CkjACRMgJEyph3nZ2329qMPAxSpIx59+STt++6q/OxY0brjn0rOpUxZcqYd52dt++++4E9/7lYHB+5OdHYcebtPzX8PY0wLhbHOx87powpU8a8K5dx5OZEw9+7zdd18Y3cnFDG9Clj3ilji1PGTChj3ilji1PGTChj3ilji1PGTChj3iWVsdi7eklb2dKuCxWbV6xasrq3WLHmQtfSqddMrlLGFChjJpQx72rLeKFr6XT0LnQtrYjjha77ymuKvauXTMex2Lt6ydRWU6uUMQXKmAllzLvZzqaLvauXhHnjpAtdS5NXlFYtWd2rjClQxkwoY94tuIz1k6mMaVLGTChj3s1Sxrr9m4xfMeE1U+uUMQXKmAllzLuZyli63VLVv6n7LPWqOLnF0q4L7sCkQhkzoYx5V6+Mkwmsc7pcrmbijeupaCpjCpQxE8qYdzM8tVO3ipOqT6hLKa2aSipjCpQxE8qYd4lP7cxexfKGk9tVP8NTpowpUMZMKGPe1ZSx/q2VYu/q70yvqAxonfs0ypgCZcyEMuZdLGPV37/U/CFMwh+6xMUV65UxBcqYCWXMO3833eKUMRPKmHfK2OKUMRPKmHfK2OKUMRPKmHeLWcaVK1c2/D0JlDETyph3i1lGUqCMmVDGvFPGFqeMmVDGvFPGFqeMmVDGvFPGFqeMmVDGvFPGFqeMmVDGvFPGFqeMmVDGvCuX8WJxfOTmhNFy42JxXBnTp4x5Vy6j0bpDGdOnjHnX2Xm7rc3IwyBFyph3X355+913jTwMUqSMAJEyAkTKCBApI0CkjACRMgJEyggQKSNApIwAkTICRMoIECkjQKSMAJEyAkTKCBApI0CkjACRMgJEyggQKSNApIwAkTICRMoIECkjQKSMAJEyAkTKCBApI0CkjACRMgJEyggQKSNApIwAkTICRMoIECkjQKSMAJEyAkTKCBApI0CkjACRMgJEyggQKSNApIwAkTICRMoIECkjQKSMAJEyAkTKCBApI0CkjACRMgJEyggQKSNApIwAkTICRMoIECkjQKSMAJEyAkQLLCNAvs27jADfTsoIECkjQKSMAJEyAkTKCBApI0A0WUYAKv0f4sHQatjCSIwAAAAASUVORK5CYII=" alt="" />

1、在对文本框绑定属性Count,并在绑定属性时添加NotifyOnValidationError=True,ValidatesOnExceptions=True,当通知更新源时会触发验证,如果验证失败则会触发Validation.Error事件,此事件是隧道事件,可以写在上一层对象中

   <Grid Validation.Error="Grid_Error">
<TextBox Name="txt" Text="{Binding Path=Count,UpdateSourceTrigger=PropertyChanged,NotifyOnValidationError=True,ValidatesOnExceptions=True}"/>
</Grid>

2、验证过程放在属性的set中,如下MyValide,失败时抛出异常。

        private int c;

        public int Count
{
get { return c; }
set
{
MyValide(value);
c = value;
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs("Count"));
}
}
} public void MyValide(int v)
{
if(Regex.Match(v.ToString(),@"^\d{6}$").Success==false)
{
throw new ArgumentException("请填写6个数字!");
}
}

3、如果抛出异常则有Error事件处理,在文本框上的toolTip属性中显示提示信息。

        private void Grid_Error(object sender, ValidationErrorEventArgs e)
{
if (Validation.GetErrors(txt).Count() > )
{
txt.ToolTip = Validation.GetErrors(txt)[].ErrorContent.ToString();
}
else
txt.ToolTip = null;
}

wpf 验证方法的更多相关文章

  1. WPF:验证登录后关闭登录窗口,显示主窗口的解决方法

    http://www.27ba.com/post/145.html WPF:验证登录后关闭登录窗口,显示主窗口的解决方法 最近想做一个基于Socket的通讯工具,想模仿QQ那样,需要先登录,登录成功后 ...

  2. 理解和使用WPF 验证机制

    博客 学院 下载 更多 写博客 发布Chat 登录注册 理解和使用WPF 验证机制 原创 2013年06月20日 11:15:37 7404 首先建立一个demo用以学习和实验WPF Data Val ...

  3. 基于 Token 的身份验证方法

    使用基于 Token 的身份验证方法,在服务端不需要存储用户的登录记录.大概的流程是这样的: 客户端使用用户名跟密码请求登录 服务端收到请求,去验证用户名与密码 验证成功后,服务端会签发一个 Toke ...

  4. validate插件深入学习-04自定义验证方法

    自定义验证方法 jQuery.validator.addMethod(name,method,[,message]) name: 方法名 method: function(value,element, ...

  5. 基于 Annotation 拦截的 Spring AOP 权限验证方法

    基于 Annotation 拦截的 Spring AOP 权限验证方法 转自:http://www.ibm.com/developerworks/cn/java/j-lo-springaopfilte ...

  6. 封装jQuery Validate扩展验证方法

    一.封装自定义验证方法-validate-methods.js /***************************************************************** j ...

  7. jquery validate 自定义验证方法

    query validate有很多验证规则,但是更多的时候,需要根据特定的情况进行自定义验证规则. 这里就来聊一聊jquery validate的自定义验证. jquery validate有一个方法 ...

  8. jQuery Validate 表单验证插件----自定义一个验证方法

    一.下载依赖包 网盘下载:https://yunpan.cn/cryvgGGAQ3DSW  访问密码 f224 二.引入依赖包 <script src="../../scripts/j ...

  9. CAS自定义登录验证方法

    一.CAS登录认证原理 CAS认证流程如下图: CAS服务器的org.jasig.cas.authentication.AuthenticationManager负责基于提供的凭证信息进行用户认证.与 ...

随机推荐

  1. [BZOJ4552][Tjoi2016&Heoi2016]排序(二分答案+线段树)

    二分答案mid,将>=mid的设为1,<mid的设为0,这样排序就变成了区间修改的操作,维护一下区间和即可 然后询问第q个位置的值,为1说明>=mid,以上 时间复杂度O(nlog2 ...

  2. 关于 ssh 连接较慢的解决办法

    1. 概述 使用 ssh 软件连接 linux 时, 会碰到很慢的情况 2. 场景 概述 ssh 连接很慢 大概步骤 使用 xshell6 免费版, 连接 主机 一个小等待, 弹出 用户名 输入框 输 ...

  3. Redis的n种妙用,不仅仅是缓存

    redis是键值对的数据库,常用的五种数据类型为字符串类型(string),散列类型(hash),列表类型(list),集合类型(set),有序集合类型(zset) Redis用作缓存,主要两个用途: ...

  4. uCOS-II中的任务切换-图解多种任务调度时机与问题

    [@.1 任务调度时机] 之前的一篇文章分析了具体的uCOS-II中的任务切换机制,是从函数调用的角度上分析的.这次我具体从整个程序运行的时间上来看,分析多种任务调度发生的时机.以下所有图片均可点击放 ...

  5. 结合《需求征集系统》谈MVC框架

    结合<需求征集系统>分析MVC框架. 六个质量属性: 可用性:在系统压力过大时,会提示系统繁忙. 可修改性:使用配置文件,修改配置文件即可.对于一些公共的方法,进行封装,修改时,只需修改封 ...

  6. 北京Uber优步司机奖励政策(3月27日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  7. DATA 转 16 进制

    // 转 16进制 编码 NSData *data = [NSData dataWithBytes:(const void *)dataOut length:(NSUInteger)dataOutMo ...

  8. web之前端获取上传图片并展示

    1.html中经常存在图片上传的问题,但是后续的展示基本上是通过后台输出流的方式来呈现的.但是这样耗费的资源比较多.所以这里学习了一种前端直接展示图片的方式(供参考). 2.html的编写方式比较简单 ...

  9. Ruby 基础教程1-4

    1.对象 数值对象 字符串对象 数组对象,散列对象 正则表达式对象 时间对象 文件对象 符号对象 2.类 Numeric String Array Hash Regexp File Symbol 3. ...

  10. Unity Android设备的输入

    Unity Android设备的输入 1依据屏幕位置输入 有的时候也许是为了整个有些风格的干净,减少屏幕上的UI图标,以至于摒弃了虚拟按键这种常用的输入方式.为了替代虚拟按键的输入方式而选择了依据点击 ...