通常我們都會針對應用程式中的文字輸入欄位做一些檢核或是驗證的動作,如果要驗證的欄位有透過DataBinding來做存取值的話,可以透過BindingValidation相關功能進行資料驗證的動作;但是,如果要驗證的欄位完全沒有做DataBinding的話怎麼辦呢!?
既然沒有自動的方法,那我們就自己來手工打造一個自訂的驗證機制吧!!
通常我們都會針對應用程式中的文字輸入欄位做一些檢核或是驗證的動作,如果要驗證的欄位有透過DataBinding來做存取值的話,可以透過BindingValidation相關功能進行資料驗證的動作;但是,如果要驗證的欄位完全沒有做DataBinding的話怎麼辦呢!?
既然沒有自動的方法,那我們就自己來手工打造一個自訂的驗證機制吧!!
首先,我們需要在專案中加入System.ComponentModel.DataAnnotations的參考。
接著專案中加入一個名為CustomValidation的Class,內容如下:
再來我們要利用C# 3.0新增的功能Extension Method來為FrameworkElement植入可以做驗證的功能,並且透過Tag這個Property來當作媒介,傳遞一個用來驗證的Binding物件,建立一個名為FrameworkElementExtension的Class:
仔細看看程式碼就會發現,我已經在裡面多放了三個用來做驗證三種不同資料格式用的Method了,如果有需要加入其他的驗證規則,也可以依照這個模式繼續往下加。
到這邊,前置工作就完成了,再來就可以開始利用剛剛寫好的東西來對欄位進行驗證了,這邊提供我隨便做的小範例:
來看看成果吧!!
最後的最後,附上原始碼,請自行服用~