wpf 验证方法
效果图,当放鼠标到文本框上会显示出错的提示。
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 验证方法的更多相关文章
- WPF:验证登录后关闭登录窗口,显示主窗口的解决方法
http://www.27ba.com/post/145.html WPF:验证登录后关闭登录窗口,显示主窗口的解决方法 最近想做一个基于Socket的通讯工具,想模仿QQ那样,需要先登录,登录成功后 ...
- 理解和使用WPF 验证机制
博客 学院 下载 更多 写博客 发布Chat 登录注册 理解和使用WPF 验证机制 原创 2013年06月20日 11:15:37 7404 首先建立一个demo用以学习和实验WPF Data Val ...
- 基于 Token 的身份验证方法
使用基于 Token 的身份验证方法,在服务端不需要存储用户的登录记录.大概的流程是这样的: 客户端使用用户名跟密码请求登录 服务端收到请求,去验证用户名与密码 验证成功后,服务端会签发一个 Toke ...
- validate插件深入学习-04自定义验证方法
自定义验证方法 jQuery.validator.addMethod(name,method,[,message]) name: 方法名 method: function(value,element, ...
- 基于 Annotation 拦截的 Spring AOP 权限验证方法
基于 Annotation 拦截的 Spring AOP 权限验证方法 转自:http://www.ibm.com/developerworks/cn/java/j-lo-springaopfilte ...
- 封装jQuery Validate扩展验证方法
一.封装自定义验证方法-validate-methods.js /***************************************************************** j ...
- jquery validate 自定义验证方法
query validate有很多验证规则,但是更多的时候,需要根据特定的情况进行自定义验证规则. 这里就来聊一聊jquery validate的自定义验证. jquery validate有一个方法 ...
- jQuery Validate 表单验证插件----自定义一个验证方法
一.下载依赖包 网盘下载:https://yunpan.cn/cryvgGGAQ3DSW 访问密码 f224 二.引入依赖包 <script src="../../scripts/j ...
- CAS自定义登录验证方法
一.CAS登录认证原理 CAS认证流程如下图: CAS服务器的org.jasig.cas.authentication.AuthenticationManager负责基于提供的凭证信息进行用户认证.与 ...
随机推荐
- Vue 从零开始--搭建环境
简要:继项目空闲后,开始着手vue的学习;为此向大家分享其中的艰辛和搭建办法,希望能够跟各位VUE大神学习探索,如果有不对或者好的建议告知下:*~*! 一.什么是VUE? 是一种node.js框架,特 ...
- struts2学习笔记四
一.contextMap中的数据操作 root根:List 元素1 元素2 元素3 元素4 元素5 contextMap:Map key value application Map key value ...
- crontab执行PHP
在stackoverflow上看到一个问题:http://stackoverflow.com/questions/14015543/crontab-php-wget-or-curl 有三种通过cron ...
- autocomplete.jquery 点击或进入默认显示所有结果
注意使用的是autocomplete.jquery,官网地址是:https://github.com/devbridge/jQuery-Autocomplete.而不是JqueryUI的autocom ...
- 深入解析UUID及其应用(转载)
UUID 编辑 UUID含义是通用唯一识别码 (Universally Unique Identifier),这 是一个软件建构的标准,也是被开源软件基金会 (Open Software Founda ...
- 【白书训练指南】(UVa10755)Garbage Heap
先po代码,之后把我那几个不太明了的知识点讲讲,巩固以下.三维的扫描线算法想要掌握还真是有一定的难度的. 代码 #include <iostream> #include <cstri ...
- 怎么设计好移动APP测试用例
软件测试工作中我们需要不断的储备和总结自己的知识和经验,怎么设计好移动APP测试用例?如:手机.平板.智能设备,并在特定网络环境下. 我们需要关注的功能点,容易出错的位置,这将对我们整个测试过程起着至 ...
- hibernate.hbm2ddl.auto=update不能自动生成表结构
在写上篇文章<spring整合springmvc和hibernate>的时候,曾遇到一个问题 INFO: Server startup in 8102 ms Hibernate: inse ...
- [JSON].set(keyPath, value)
语法:[JSON].set( keyPath, value ) 返回:[True | False] 说明:设置键值 参数: keyPath [keyPath 必需] 键名路径字符串 value ...
- leetcode-打家劫舍(动态规划)
你是一个专业的小偷,计划偷窃沿街的房屋.每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警. 给定一个代表每 ...