2010-08-05 21 views
1

我正在使用ASMX進行服務的Silverlight 4 + MVVM項目。我爲什麼要使用DataForm?

我發現DataForm很麻煩。 IEditableObject,綁定等似乎是一種痛苦。我在沒有DataForm的應用程序中完成了一些表單,他們的工作非常好。

所以我想我真正的問題是,數據表給我的那手錶式轟炸表不會是什麼?它是在同一時間編輯多個記錄嗎?因爲這看起來像是噩夢的配方。

+2

添加評論,因爲你已經標記了一個答案,但在我看來,DataForm和DataGrid遠遠高估了。他們在演示中看起來很棒,因爲您只需拖放數據源即可,而且您有一個可行的應用程序。在現實世界中,有更復雜的驗證,綁定規則等,並且最終定製它們以至於從頭開始構建自己的應用程序可能會更好。我還沒有找到任何令人信服的理由來通過簡單的演示來使用DataForm,或者快速地將代碼放在一起來進行概念驗證。 – 2010-08-07 13:45:02

+0

謝謝傑里米,你有沒有遇到過這個觀點的其他論壇/博客/文章? – itchi 2010-08-08 15:49:14

回答

2

不確定您的具體情況,但我可以從RIA Services的角度回答(具體來說可以從DataForm中獲益)。

RIA Services將實體傳遞給您的silverlight應用程序。這些實體已經是RESTful了,並且已經實現了IEditableObject接口(好處#1),它們還可以攜帶元數據,例如字段需求,導航屬性,有效範圍,錯誤消息等。默認情況下,實體框架和RIA服務將啓動您可以通過在您的數據源(例如SQL)中定義的元數據而無需付費(優點2)。使用CollectionViewSource或DomainDataSource等其中一個內置集合提供導航實現(通過ICollectionView接口)(效益#3)。

根據您的說法,這聽起來像是您以相當手動的方式傳遞數據,並且您可能無法立即獲得這些好處。嘗試使用CollectionViewSource來實現對集合的過濾,排序和導航,嘗試向模型對象添加元數據(通過添加來自System.ComponentModel.DataAnnotations名稱空間的屬性),嘗試添加元數據。

+0

非常有趣!所以,如果我不使用RIA,那麼1 + 2的好處是沒有用的。我應該看看CollectionViewSource的#3。 – itchi 2010-08-06 16:55:04

+0

這些都不是沒有爭議,我建議尋找元數據屬性,這將獲得您的好處#2,CollectionViewSource也爲#3增加了一些很大的好處。這些都不需要RIA服務。大多數情況下,真的取決於你的情況... – 2010-08-06 17:20:10

+0

我已經註釋了,但他們的好處並不完全與數據表單綁定。 – itchi 2010-08-06 17:36:27