詳解Silverlight 4中RIA Service dataform Template, 代碼選擇控件及Validate驗(yàn)證的技巧
本文和大家分享一下Silverlight 4 RIA Service dataform Template, 代碼選擇控件,Validate驗(yàn)證使用技巧
功能
定義只讀,新增,編輯三塊模塊
定義模板的目的是更好的復(fù)用和提高XAML代碼的可讀性和可維護(hù)性,也可以更好的分工合作。下面是一個(gè)歸并關(guān)系的維護(hù)界面。
主要有表頭,多個(gè)表體組成,為了把所有操作盡量在一個(gè)頁面中完成,表頭使用一個(gè)DataForm空間,表體使用DataGrid和DataForm組合實(shí)現(xiàn)。
而DataForm有三種狀態(tài)分別是只讀(顯示不可編輯),編輯,新增。因此我們需要為這三種模板來控制每個(gè)控件的布局和屬性,比如只讀狀態(tài)下空間的IsReadOnly為True,編輯狀態(tài)下,關(guān)鍵字字段的IsReadOnly為True,其他字段可以編輯,編輯狀態(tài)使用選擇控件方便輸入,新增狀態(tài)下,對(duì)于關(guān)鍵字段和必填字段需要用粗體字體顯示(默認(rèn))或其他形式提醒操作用,這都需要在不同的模板中定于。
提示:布局使用Data Filed控件系統(tǒng)默認(rèn)根據(jù)DataForm控件的狀態(tài)改變Data Field編輯狀態(tài)
下圖是編輯狀態(tài)下的布局

模板文件

XAML代碼

自定義代碼選擇控件,快速輸入控件
最常見的單機(jī)放大鏡彈出所有記錄選擇后返回頁面或是在一個(gè)TextBox中輸入一個(gè)代碼(料號(hào))自動(dòng)帶出名稱,單位,單價(jià)等信息實(shí)現(xiàn)快速輸入。如果用asp.net需要寫需要JavaScript代碼,而使用Silverlight則非常容易就能實(shí)現(xiàn)。

XAML代碼;

通過把需要帶出的字段綁定到自定義控件上。
Silverlight代碼
屬性綁定代碼

賦值代碼

為了提高代碼的可讀性,推薦使用匿名方法
類似的簡單的CodeValue的選擇使用AutoCompleted控件自己小改一下便可實(shí)現(xiàn)

下面是實(shí)現(xiàn)代碼,名稱快速轉(zhuǎn)換的實(shí)現(xiàn),顯示名稱保存代碼
定義一個(gè)Converter,和一個(gè)代碼組的數(shù)據(jù)源

數(shù)據(jù)源繼承一個(gè)接口方便轉(zhuǎn)換時(shí)使用

字段輸入驗(yàn)證(唯一性驗(yàn)證)
通過對(duì)DomainService生成的metadata class的字段添加屬性進(jìn)行驗(yàn)證。為了更好維護(hù)對(duì)驗(yàn)證數(shù)據(jù)的提示信息,可以使用資源文件保存比如,驗(yàn)證支持特定屬性和正則表達(dá)式,自定義驗(yàn)證


代碼

唯一性驗(yàn)證
需要對(duì)提示用戶輸入的信息重復(fù)了

代碼

注意:這里需要添加一個(gè)編譯條件,不然無法編譯過去。
posted on 2011-03-27 19:05 常言笑 閱讀(1709) 評(píng)論(2) 編輯 收藏 所屬分類: SilverLight