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

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. AtCoder Regular Contest 098 D - Xor Sum 2 区间异或=相加 DP思想

    题意:给出n个数,求它的连续子序列中,满足下列公式,(l,r)的对数有多少对 Al xor Al+1 xor … xor Ar=Al + Al+1 + … + Ar 思路:由题意可以得到,连续子序列, ...

  2. HDU 5972 Regular Number

    Regular Number http://acm.hdu.edu.cn/showproblem.php?pid=5972 题意: 给定一个字符串,求多少子串满足,子串的第i位,只能是给定的数(小于等 ...

  3. androd hook acitivity 启动流程,替换启动的activity(Android Instrumentation)

    前言:如果程序想要知道有activity启动,如果想要拦截activity,然后跳转到指定的activity怎么办? 我们看下ActivityThread 里面: private Activity p ...

  4. nexys4-DDR开发板数码管驱动-第二篇

    1. 有这个板子使用的是Artix-7系列的XC7A100T-1CSG324C芯片.作为7系列中的一款FPGA,这个芯片的结构与Kintex-7和Virtex-7几乎一样.也配备了XADC.在Arti ...

  5. Mysql 8.0.* zip版本 windows安装

    一,MySQL8.0.*zip版本安装步骤. 1,下载 https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.15-winx64.zip 注现 ...

  6. leetcode笔记11 First Unique Character in a String

    题目描述: Given a string, find the first non-repeating character in it and return it's index. If it does ...

  7. Qt-QML-Loader初步接触

    先说说为什么用到了QML的Loader,这里我就要先扯点别的,那就是QML自带的ColorDialog,QML的机制 是优先调用系统提供的ColorDialog,如果系统的ColorDialog的不可 ...

  8. python处理dict转json,字符串中存在空格问题,导致url编码时,存在多余字符

    在进行urlencode转换请求的参数时,一直多出一个空格,导致请求参数不正确,多了一个空格,解决方法一种是将dict中key-value键值对的value直接定义为字符串,另一种是value仍然为字 ...

  9. ortp打印日志

    //向字符串中打印数据 static char* ms_strdup_vprintf(const char *fmt, va_list ap) { ; char *p,*np; #ifndef WIN ...

  10. Python递归算法入门

    递归是一种算法,它在编程里面有着广泛的应用: 1. 递归必须满足哪两个基本条件? 一.函数调用自身 二.设置了正确的返回条件 2. 思考一下,按照递归的特性,在编程中有没有不得不使用递归的情况? 答: ...