博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WPF使用IDataErrorInfo进行数据校验
阅读量:7009 次
发布时间:2019-06-28

本文共 1937 字,大约阅读时间需要 6 分钟。

原文:

这篇博客将介绍如何使用IDataErrorInfo进行数据校验。下面直接看例子。一个Customer类,两个属性(FirstName, Age)

class Customer{    public string FirstName    {        get;        set;    }    public int Age    {        get;        set;    }}

将Customer类继承IDataErrorInfo,并实现它的属性。

class Customer : System.ComponentModel.IDataErrorInfo    {        public string this[string columnName]        {            get            {                string result = string.Empty;                if(columnName == "FirstName")                {                    if(string.IsNullOrWhiteSpace(FirstName))                    {                        result = "Name cannot null or empty.";                    }                }                else if(columnName == "Age")                {                    if(Age < 0)                    {                        result = "Age cannot less then zero.";                    }                }                return result;            }        }        public string Error        {            get            {                return null;            }        }        public string FirstName        {            get;            set;        }        public int Age        {            get;            set;        }    }

在UI中绑定Customer的FirstName,Age属性,并且当出现错误数据时触发验证。

将Customer的FirstName与Age属性分别绑定在两个TextBox中,设置ValidatesOnDataErrors=True来触发验证。将错误信息绑定在TextBox的ToolTip属性上,

ToolTip="{Binding RelativeSource={RelativeSource Self}, Path=(Validation.Errors)[0].ErrorContent}" 或者

ToolTip="{Binding RelativeSource={RelativeSource Self}, Path=(Validation.Errors).CurrentItem.ErrorContent}"或者

另外可以对ErrorTemplate进行定制,例如上面代码中的TextBoxErrorTemplate。

运行结果:

代码点击下载,感谢您的阅读。

转载地址:http://rqttl.baihongyu.com/

你可能感兴趣的文章
伪共享和缓存行
查看>>
微软将在新版Edge浏览器中支持广告拦截器
查看>>
意大利电信开始在米兰部署1Gbps宽带
查看>>
网络钓鱼防不胜防:大型科技公司竟被骗逾1亿美元
查看>>
联合光伏拟撤诉 *ST海润将免交2亿港元违约金
查看>>
网络间谍活动月光迷宫已演变成Turla
查看>>
欧洲运营商展开5GTango项目 应对特定行业市场
查看>>
Windows 10创作者更新将改进蓝牙功能
查看>>
睿联嘉业边缘融合大屏幕多媒体会议系统方案
查看>>
凯立德货车专用导航 应“运”而生
查看>>
光伏组件市场价格战下谁获益?
查看>>
价格血拼战频频上演 光伏业陷入集体焦虑
查看>>
聊天机器人真正的潜力,潜藏在个人金融领域
查看>>
英特尔或推可超频Kaby Lake酷睿i3处理器: 重拾赛扬300A荣光?
查看>>
要想在未来立足 微软等软件公司就必须折本研发硬件
查看>>
个人常用网址集合
查看>>
吉林省将建东北林业大数据中心
查看>>
从互联网到物联网:下一个创新风口到来
查看>>
郭台铭:苹果亚马逊已提供资金 协助富士康收购东芝闪存
查看>>
美40家互联网巨头联合致信特朗普:今后你该这么做
查看>>