王彦为

WPF
WPF

WPF的TextBox输入验证之IDataErrorInfo验证

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

2016-12-26 1条评论 5341点热度 3人点赞 王彦为 阅读全文
WPF

WPF的TextBox输入验证之ValidationRule验证

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

2016-12-22 0条评论 63149点热度 85人点赞 王彦为 阅读全文
WPF

WPF的TextBox输入验证之Exception验证

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

2016-12-20 0条评论 12586点热度 38人点赞 王彦为 阅读全文
WPF

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

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

2016-12-16 2条评论 16298点热度 50人点赞 王彦为 阅读全文
WPF

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

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

2016-12-14 0条评论 9963点热度 52人点赞 王彦为 阅读全文

王彦为

新生代农民工,十年医疗器械行业从业经验,现居苏州。爱生活,爱做梦。

分类
  • WPF / 5篇
  • 嵌入式 / 9篇
  • 工具 / 2篇
  • 攻防 / 3篇
  • 杂谈 / 2篇

COPYRIGHT © 2022 王彦为. ALL RIGHTS RESERVED.

苏ICP备16063331号-1

苏公网安备32050702011313号