2013-12-19 24 views
1

我有以下內容:一個DataGrid,其中DataContext是具有Customer對象列表的對象。我從數據庫中提取值。 要編輯某個客戶,我點擊連續的按鈕,然後打開一個包含客戶詳細信息的新表單。現在我將相關的客戶對象(因此引用)傳遞給子表單DataContext。wpf datagrid:刪除主列表/子編輯表單之間的依賴關係?

我對此並不滿意,因爲客戶表單中的任何修改都顯示在客戶列表表單中。

我希望兩者都是獨立的,並且只有當我點擊子表單中的「保存」按鈕時才刷新表單數據(當我點擊「取消」時不做任何事情),這會觸發數據庫讀取客戶更新的價值。

告訴你這些想法覺得這是正確的分開:

  1. 使客戶對象的克隆,並通過這個克隆子窗體。我不喜歡這個。
  2. 重讀客戶從數據庫進行編輯以獲得具有相關數據的完整新對象。在這種情況下,由於我的客戶數據已被完全讀取,所以似乎對再次詢問數據庫並不好玩。

謝謝你的建議。

回答

0

我繼續着我自己這樣做的方式,而不與代表工作:WPF : update parent form after canceling edit in child form (reset DataContext)

有點麻煩,但作品。

我也用克隆的這種好的方式:WPF : update parent form after canceling edit in child form (reset DataContext)

但我做了一些改變:我補充說:「其中T:類」的泛型方法簽名。我還簡化了用於測試空參數的代碼:

// Don't serialize a null object, simply return the default for that object 
if (source_ == null) 
{ 
    return default(T); 
}