2012-04-17 43 views
0

我有一個典型的主 - 細節場景。用戶可以在主視圖中單擊「添加新」並在詳細視圖中輸入詳細信息。例如,讓我說我有Product的ObservableCollection列表。當用戶單擊「添加新的」時,我將新的產品記錄添加到ObservableCollection中,然後打開詳細視圖以添加產品詳細信息。如果用戶保存產品,這很有效。但是,如果用戶決定取消添加新產品,我如何從主視圖中的Product的ObservableCollection中刪除相同內容。現在我可以想到兩種方法,首先將ObservableCollection的引用傳遞給Details視圖,然後使用事件通知主視圖,以瞭解新產品記錄刪除。你有什麼建議?另外,如果有更好的方法來專門處理棱鏡,請讓我知道。棱鏡 - 從主視圖中刪除新增記錄的策略

關於, Nirvan。

回答

1

將對ObservableCollection的引用傳遞給details視圖是一個禁忌 - 它應該只知道它綁定的記錄。

您還沒有爲此指定用戶界面,可以有幾種方法可以更好地適合您的設計。然而,一個合理的不可知的方式是使用EventAggregator來發布主視圖可以訂閱的事件。主要觀點是如何處理這個事件,不同的觀點可以以不同的方式作出反應。在這種特殊情況下,主視圖可以檢查當前選擇的項目,如果它是新的(即未保存,沒有關鍵信息,如ID),則可以將其從收集中移除並丟棄它。

+0

master的UI是DataGrid,UI的細節是TabControl的tabitem。感謝 – Jatin 2012-04-17 04:34:24

+0

slugster的回覆,我使用了EventAggregator,它效果很好。爲了使功能正常工作,我必須添加幾行代碼。非常感謝。 – Jatin 2012-04-17 04:50:56