1、修改ViewModel类继承IDataErrorInfo接口
IDataErrorInfo接口程序集为System.ComponentModel;
![](https://img.haomeiwen.com/i13423228/6a789c968ea451d4.png)
2、修改ViewModel中属性
其中属性的验证属性需要继承System.ComponentModel.DataAnnotations
![](https://img.haomeiwen.com/i13423228/fb27551819596dd7.png)
3、用户自定义验证类可以更灵活的编辑验证的条件,该类封装了一组返回值为ValidationResult的公共静态方法
![](https://img.haomeiwen.com/i13423228/75330bb7de43e361.png)
4、后台属性设置完成,xaml代码中属性绑定需要进行验证设置
需要设置数据绑定Binding中ValidatesOnExceptions和ValidatesOnDataErrors属性为true
![](https://img.haomeiwen.com/i13423228/223d710714671838.png)
5、修改TextBox中的验证错误样式,主要修改Validation.ErrorTemplate控件模板及Validation.HasError的触发器
注:错误验证的控件可用于DependencyObject的所有控件
ErrorTemplate为验证错误时控件的显示样式,也可以通过Validation.HasError属性在触发器中设置简单的样式
![](https://img.haomeiwen.com/i13423228/d3367fc301e882e7.png)
6、到此,界面上的验证基本设置完成,当输入数据验证不通过时则会触发相关的样式
![](https://img.haomeiwen.com/i13423228/f7be6e69555390d6.png)
7、下面需要在数据提交的过程中判断所有数据是否验证通过,从而决定数据是否开始提交
实现思路:获取输入控件列表并遍历控件是否存在验证错误,存在则获取错误验证的信息,否则跳过;
通过获取回来的错误信息判断是否当前验证的数据是否全部通过,并返回结果
![](https://img.haomeiwen.com/i13423228/0a6a337bcb73e4d5.png)
8、总结:可以在ViewModel的基类中继承IDataErrorInfo接口,将获取错误的相关方法可以封装在这个基类中
参考网站:https://www.cnblogs.com/NotAnEmpty/p/4031636.html
网友评论