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

aaarticlea/png;base64,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" 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. 【8086汇编-Day8】实验九

    Lab1 代码 ; 在屏幕上输出内存单元中的十进制两位数 assume cs:code, ds:data data segment db db , ; 前一个字节用于保存商,后一个字节用于保存余数 d ...

  2. SQL Server 中对 FOR XML和FROM的转换处理

    在SQL Server中对XML的再操作转换: 方法1: --生成XML SELECT * FROM [T_BAS_预算科目] FOR XML PATH --把XML转成SQL表 declare @X ...

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

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

  4. 北京Uber优步司机奖励政策(1月23日)

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

  5. VINS(六)边缘化

    通常的边缘化是将联合概率分布分解为边缘概率分布和条件概率分布的过程,这样可以将Sliding Window中较旧的状态边缘化出Sliding Window,同时保留其信息.并且保证了对应H海塞矩阵的稀 ...

  6. java 浅复制 深复制

    1.浅复制 只是复制引用,对引用的操作会影响之前复制的对象. 2.深复制 复制一个完全独立的对象,复制对象与被复制对象相互之间不影响. 只是概念性东西....

  7. Jenkins 配置邮箱 530Authentication required ,535 uthentication failed 的解决方法

      错误 解决方法 530 Authentication required  需要展开SMTP认证,输入SMTP server能识别的用户信息 535 authentication failed  输 ...

  8. HDU-1496(哈希表)

    Hash入门第一题 题意: 问题描述 考虑具有以下形式的方程: a * x1 ^ 2 + b * x2 ^ 2 + c * x3 ^ 2 + d * x4 ^ 2 = 0 a,b,c,d是来自区间[- ...

  9. 372. Delete Node in a Linked List【LintCode java】

    Description Implement an algorithm to delete a node in the middle of a singly linked list, given onl ...

  10. HTML 之 表单

    关于HTML的表单 <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset=&q ...