《深入浅出WPF》笔记——绑定篇.docVIP

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《深入浅出WPF》笔记——绑定篇.doc

一、Bindi?ng对数据?的校验与转?化   在上一篇中?有提到过绑?定像是一座?桥梁,在桥梁两端?要有源和目?标以及在桥?梁上面我们?可以设立关?卡对数据进?行验证,除此之外,源提供的数?据有时不一?定是目标想?要的类型,但是可以通?过转化成为?目标需要的?类型。 1.1Bind?ing的数?据验证   在软件设计?过程中,数据的验证?是经常要实?现的。要实现Bi?nding?的数据验证?,主要通过B?indin?g的Val?idati?onRol?es属性来?实现。下面让我们?认识一下V?alida?tionR?oles(验证条件):可以看到V?alida?tionR?oles是?复数形式,应该可以想?到他是一个?Colle?ction?Valid?ation?Role类型的的属?性,而Vali?datio?nRole?是一个抽象?类,所以我们要?向验证条件?集合里面添?加的应该是?继承自Va?lidat?ionRo?le的一个?实例,既然要继承?抽象类,那么就要实?现Vali?date方?法,其形式为p?ublic? abstr?act Valid?ation?Resul?t Valid?ate(objec?t value?, Cultu?reInf?o cultu?reInf?o),其中Val?ue是要验?证的值,cultu?reInf?o暂不用理?会,方法的返回?值为Val?idati?onRes?ult类型?的,Valid?ate具有?两个形参(一个是否通?过验证,一个是错误?信息)。为什么验证?条件要用集?合类型的呢??这是因为在?一个绑定中?可以有一个?源,每一个源可?以有很多属?性,而且一个绑?定可以对应?多个目标。所以就可能?有多个验证?(由于上面文?字涉及的变?量比较多,建议在VS?上面转到定?义上,好好理解一?下)。我们暂且还?拿Text?Box文本?框与Sli?der控件?的相互绑定?为例吧!现在的需求?是想让用户?在滑动Sl?ider和?填写Tex?tBox时?,http://qianm?ing.qqq23?.com 验证滑动范?围和填写数?字范围在0?-100之间?,如果不是在?这个范围里?,就提示输入?数字不合理?,且文本框的?边框显示红?色。 ?A、实现Val?idate?方法代码 Range?Valid?ation?Rule.cs using? Syste?m; using? Syste?m.Colle?ction?s.Gener?ic; using? Syste?m.Linq; using? Syste?m.Text; using? Syste?m.Windo?ws.Contr?ols; names?pace Commo?nLib { publi?c class? Range?Valid?ation?Rule : Valid?ation?Rule { publi?c overr?ide Valid?ation?Resul?t Valid?ate(objec?t value?, Syste?m.Globa?lizat?ion.Cultu?reInf?o cultu?reInf?o) { doubl?e d = 0; if (doubl?e.TryPa?rse(value?.ToStr?ing(), out d)) { if (d = 0 d = 80) { retur?n new Valid?ation?Resul?t(true, null); } } retur?n new Valid?ation?Resul?t(false?,输入数字不?合理!!); } } B、XAML代?码 View Code Windo?w x:Class?=Bindi?ngOfV?alid.MainW?indow? xmlns?=http://schem?as.micro?/winfx?/2006/xaml/prese?ntati?on xmlns?:x=http://schem?as.micro?/winfx?/2006/xaml Title?=MainW?indow? Heigh?t=200 Width?=300 Stack?Panel? TextB?ox x:Name=textb?ox1 Margi?n=5

文档评论(0)

zhangningclb + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档