2010-12-13 75 views
0

所以這個問題並不是技術性的,而是更多的概念。在WPF中維護業務對象列表的最佳方法

我有一些與asp.net的經驗,但剛剛開始WPF與WCF服務(沒有任何經驗winforms)。假設我需要維護這個Business Objects的列表。我想在2個解決方案:

  1. 我綁定一個網格,我的對象的列表,並允許用戶編輯犯對象的對象時,用戶更改網格中關注的行如果沒有驗證錯誤。如果存在驗證錯誤,則用戶無法更改焦點線。

  2. 允許用戶自由編輯對象列表並提交整個集合通過保存按鈕對這些對象進行批量更新。只有在網格中沒有發生驗證錯誤的情況下才可以提交。驗證問題在網格上發出信號,用戶可以自由更改關注的行。

這樣做的標準(最佳)方法是什麼?歡迎任何其他建議。

在此先感謝

PS:剛一說明,該數據源是不是本地的WCF服務在Web服務器被託管的應用程序。

回答

1

我不會說有一個特定的「標準」在這裏。您使用的方法將取決於很多因素。

  1. 什麼是用戶羣?併發編輯有很大的潛力,通過記錄保存記錄有助於減少碰撞的可能性。
  2. 什麼是最有效的從用戶的角度來看,他們需要「批量編輯」,還是讓他們在繼續之前獲得每一個權利是非常重要的
  3. 如果您進行批量編輯,丟失的更改怎麼辦?如果用戶機器出現故障,或者導致應用程序死機,則執行此操作。
+0

關於併發性的好處...儘管應用程序的這一點不會有這個問題,因爲它是一個受限區域。 3的好點。謝謝 – Luis 2010-12-13 14:41:36

1

它確實取決於很多事情,但是由於您提到了WCF服務,我將假設您有一個數據源,它通過您的服務接口暴露給多個客戶端(對嗎?)。在這種情況下,您可能希望最小化網絡流量,所以我建議採用批量更新方法。否則,您將有任何用戶所做更改的服務電話。

如果用戶有本地數據源,則可能需要考慮第一種方法,因爲這樣可以最大限度地減少丟失數據的機會,因爲每次更改都會提交給數據源。

此外,你可能想看看內置的驗證功能的WPF數據網格: http://msdn.microsoft.com/en-us/library/ee622975.aspx

+0

數據源不是本地的。問題已被編輯。謝謝 – Luis 2010-12-13 14:40:46

1

我認爲如果你實現了一個網格原型,它不會讓你專注於一個新的行,直到你修正了當前行中的驗證錯誤,那麼你會對令人難以置信的煩惱感到驚訝事實證明是。

還有第三種方法,你沒有提到,這是更新驗證,並允許用戶離開行處於無效狀態。只要用戶界面非常清楚某行是否有效,用戶就不應該對他的編輯是否已經提交給數據源感到困惑。

相關問題