我正在使用ASMX進行服務的Silverlight 4 + MVVM項目。我爲什麼要使用DataForm?
我發現DataForm
很麻煩。 IEditableObject
,綁定等似乎是一種痛苦。我在沒有DataForm的應用程序中完成了一些表單,他們的工作非常好。
所以我想我真正的問題是,數據表給我的那手錶式轟炸表不會是什麼?它是在同一時間編輯多個記錄嗎?因爲這看起來像是噩夢的配方。
我正在使用ASMX進行服務的Silverlight 4 + MVVM項目。我爲什麼要使用DataForm?
我發現DataForm
很麻煩。 IEditableObject
,綁定等似乎是一種痛苦。我在沒有DataForm的應用程序中完成了一些表單,他們的工作非常好。
所以我想我真正的問題是,數據表給我的那手錶式轟炸表不會是什麼?它是在同一時間編輯多個記錄嗎?因爲這看起來像是噩夢的配方。
不確定您的具體情況,但我可以從RIA Services的角度回答(具體來說可以從DataForm中獲益)。
RIA Services將實體傳遞給您的silverlight應用程序。這些實體已經是RESTful了,並且已經實現了IEditableObject接口(好處#1),它們還可以攜帶元數據,例如字段需求,導航屬性,有效範圍,錯誤消息等。默認情況下,實體框架和RIA服務將啓動您可以通過在您的數據源(例如SQL)中定義的元數據而無需付費(優點2)。使用CollectionViewSource或DomainDataSource等其中一個內置集合提供導航實現(通過ICollectionView接口)(效益#3)。
根據您的說法,這聽起來像是您以相當手動的方式傳遞數據,並且您可能無法立即獲得這些好處。嘗試使用CollectionViewSource來實現對集合的過濾,排序和導航,嘗試向模型對象添加元數據(通過添加來自System.ComponentModel.DataAnnotations名稱空間的屬性),嘗試添加元數據。
添加評論,因爲你已經標記了一個答案,但在我看來,DataForm和DataGrid遠遠高估了。他們在演示中看起來很棒,因爲您只需拖放數據源即可,而且您有一個可行的應用程序。在現實世界中,有更復雜的驗證,綁定規則等,並且最終定製它們以至於從頭開始構建自己的應用程序可能會更好。我還沒有找到任何令人信服的理由來通過簡單的演示來使用DataForm,或者快速地將代碼放在一起來進行概念驗證。 – 2010-08-07 13:45:02
謝謝傑里米,你有沒有遇到過這個觀點的其他論壇/博客/文章? – itchi 2010-08-08 15:49:14