日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
WPF驗(yàn)證技巧講解

WPF驗(yàn)證的實(shí)現(xiàn)方式比較靈活,對(duì)于初學(xué)者來說掌握起來并不是非常的輕松。我們?cè)谶@里為大家詳細(xì)介紹了具體的操作方法,希望對(duì)大家有所幫助。#t#

一.兩步實(shí)現(xiàn)WPF驗(yàn)證

(1)實(shí)現(xiàn)INotifyPropertyChanged接口,并為驗(yàn)證的屬性添加需要驗(yàn)證的元數(shù)據(jù)

  1. [StringLengthValidator(1, 10, 
    MessageTemplate = "First Name 
    must be between 1 and 15 characters")]
  2. public string FirstName
  3. {
  4. get { return this.firstName; }
  5. set
  6. {
  7. this.firstName = value;
  8. this.OnPropertyChanged("FirstName");
  9. }
  10. }

(2)在前端使用Validizor控件,為后端驗(yàn)證顯示錯(cuò)誤

 
 
 
  1. < Validizor Source="
    {Binding FirstName}"/>
  2. < TextBox Text="{Binding 
    FirstName,UpdateSource
    Trigger=PropertyChanged}"/>

WPF驗(yàn)證二.使用EnterpriseLibrary驗(yàn)證組

(1)指定元數(shù)據(jù)Ruleset屬性

 
 
 
  1. [StringLengthValidator(1, 20, 
    MessageTemplate = "Last Name 
    must be between 1 and 20 
    characters", Ruleset = "Default")]
  2. public string LastName
  3. {
  4. get { return this.lastName; }
  5. set
  6. {
  7. this.lastName = value;
  8. this.OnPropertyChanged("LastName");
  9. }
  10. }

(2)前端控件同時(shí)指定Ruleset屬性

 
 
 
  1. < Validizor Source=
    "{Binding LastName}" 
    Ruleset="Default">

三.內(nèi)置WPF驗(yàn)證的缺陷

(1)ui錯(cuò)誤無法變更,驗(yàn)證的不僅僅只是TextBox(3.5 sp1 可以把錯(cuò)誤信息轉(zhuǎn)嫁)
wpf內(nèi)置驗(yàn)證的做法,自定義ValidationRule

(2)若使用了內(nèi)置驗(yàn)證做法,控件的驗(yàn)證將會(huì)失效

四.兩個(gè)屬性以上的WPF驗(yàn)證

(1)單一的元數(shù)據(jù)標(biāo)簽無法做到,需要寫額外的方法進(jìn)行驗(yàn)證

(2)使用HasSelfValidation元數(shù)據(jù)標(biāo)簽驗(yàn)證對(duì)象

 
 
 
  1. [HasSelfValidation]
  2. public class Person2 : 
    INotifyPropertyChanged
  3. {
  4. }

(3)添加驗(yàn)證方法

 
 
 
  1. [SelfValidation(Ruleset 
    = "Default")]
  2. public void ValidateDefault
    (ValidationResults results)
  3. {
  4. }

(4)針對(duì)特定屬性來驗(yàn)證

(4)-1 實(shí)行IPropertyChangedName接口,根據(jù)進(jìn)來的屬性進(jìn)行判斷,可以填寫多個(gè)方法用于區(qū)分

 
 
 
  1. [SelfValidation(Ruleset = 
    "Default")]
  2. public void ValidateDefault
    (ValidationResults results)
  3. {
  4. switch (this.PropertyChangedName)
  5. {
  6. case "FirstName":
  7. break;
  8. }
  9. }
  10. [SelfValidation(Ruleset =
     "Default")]
  11. public void ValidateDefault
    (ValidationResults results)
  12. {
  13. switch (this.PropertyChangedName)
  14. {
  15. case "LastName":
  16. break;
  17. }
  18. }

(5)前端控件指定


文章題目:WPF驗(yàn)證技巧講解
轉(zhuǎn)載來于:http://www.5511xx.com/article/cdsigoe.html