王彦为
WPF
WPF

WPF的TextBox输入验证之IDataErrorInfo验证

这篇文章应该在4年前发表的,可由于一些原因,直到今日才发表。在介绍IDataErrorInfo验证之前,我们先看一段视频。 视频中我们可以看到,用很少的代码量就完成了数据验证的功能,并且在XAML代码中只加了一条语“ValidatesOnDataErrors=True”,后端也仅仅是在属性加入了一组自定义特性。之所以能够使用简洁的代码实现验证功能,这得益于IDataErrorInfo、Attribute以及Reflection的应用。 第一步:创建自定义特性,该特性用于验证属性的值是否满足要求。该类主要有一个IsV…

2020年09月06日 875次浏览 0人点赞 0条评论 阅读全文
WPF

WPF的TextBox输入验证之ValidationRule验证

接上一篇文章《WPF的TextBox输入验证之Exception验证》,该文章继续讲述TextBox输入验证的方法,利用ValidationRule验证。 该方案有两个的缺点:一、提交表单时需要验证所有控件是否满足要求,所以所有TextBox都需要命名;二、每个属性都需要写一个验证类,工作量较大。针对第一点我们查找出页面中所有的TextBox控件,然后进行遍历判断,代码如下: 针对第二点,我们可以抽象出一个通用的验证类,例如年龄的范围是0-150岁,身高的的范围是40-300cm,那么我们抽象出一个数据范围验证类,…

2016年12月22日 25924次浏览 85人点赞 0条评论 阅读全文
WPF

WPF的TextBox输入验证之Exception验证

WPF中的TextBox是最常使用的控件,一个友好的界面应该加入验证的功能,如下图所示 当输入年龄不合适时,及时给出友好的提醒。这种功能很常见,也很实用。实现的方式也有很多种。这篇文章介绍使用ExceptionValidationRule,即绑定的属性数据发生异常时,触发TextBox自身的Validation机制。下面先看看主要代码 前台 或采用如下更简洁的方式 说明:UpdateSourceTrigger="PropertyChanged",验证规则采用ExceptionValidationRule。 后台 说…

2016年12月20日 7672次浏览 36人点赞 0条评论 阅读全文
WPF

WPF中TextBox在.NET 4.5无法输入浮点数

最近发现一个很奇怪的现象,TextBox中的Text绑定double型数据,触发条件UpdateSourceTrigger=PropertyChanged时,在.net4.5框架下无法输入小数点,而在.net 4.0之前的框架不存在这个问题。为了描述地更清晰,下面做一个简单的模型来说明。 这是一个很简单的MVVM模型,相信熟悉WPF Binding的人都能看明白。下面是不同条件下的测试结果: 至此,这个现象已经描述清楚了,下面介绍原因和解决方法。 据说转换器的问题,至于是微软有意为之还是bug就不得而知了。 方法一…

2016年12月16日 10236次浏览 50人点赞 2条评论 阅读全文
WPF

XP运行WPF程序,部分控件透明

最近在做一个关于医疗项目的软件,使用wpf开发。由于不确定目标客户的Window版本,所以尽量兼容XP以后所有Window系统。最后在测试过程中发现一个问题,在XP系统下,部分控件显示不全,更专业的描述就是部分控件透明。这一现象在其他Window系统并未发现。后来经过查阅资料才发现是WPF硬件加速的问题。 硬件加速就是利用硬件来替代软件算法以充分利用硬件所固有的快速运算的特性。说白了就是操作系统在渲染UI时,利用GPU代替CPU做大量浮点型运算。 WPF从以下三个层次上来利用硬件加速的特性: WPF API首先检测…

2016年12月14日 6943次浏览 51人点赞 0条评论 阅读全文

王彦为

准备考试,暂停更新一个月。

分类目录
  • WPF (5)
  • 嵌入式 (8)
  • 工具 (1)
  • 攻防 (2)
  • 杂谈 (2)
最新 热点 随机
最新 热点 随机
版本控制工具之SVN的使用 玩转DragronBoard 410c系列之七:Linux系统使用QT Creator开发ARM应用程序 玩转DragronBoard 410c系列之六:Linux系统使用C语言控制GPIO 网站改版说明 玩转DragronBoard 410c系列之五:ARM交叉编译工具链介绍 玩转DragronBoard 410c系列之四:Linux系统搭建ARM应用开发环境
玩转DragronBoard 410c系列之五:ARM交叉编译工具链介绍 玩转DragronBoard 410c系列之七:Linux系统使用QT Creator开发ARM应用程序 个人小站开通,欢迎大家来访 WPF的TextBox输入验证之IDataErrorInfo验证 玩转DragronBoard 410c系列之四:Linux系统搭建ARM应用开发环境 玩转DragronBoard 410c系列之六:Linux系统使用C语言控制GPIO

COPYRIGHT © 2020 王彦为. ALL RIGHTS RESERVED.

苏ICP备16063331号-1