2012-09-17 29 views
4

我正在使用WPF應用MVVM模式和不使用任何訪問數據庫中的一個視圖模型的對象在另一個視圖模型中的WPF應用程序。我堅持到問題,我有哪個用戶上傳一些excel文件和視圖模型命名爲UploadViewModel在此我讀上傳的文件數據,並保持它在某些DataTable對象是UploadvViewModals類的對象,它是工作正常,但一個視圖UploadView我的問題是,現在我要顯示上傳的數據(數據表對象)它在一些ItemsControl中具有不同Viewmodal一些另一視圖。 作爲在WPF和窗戶向一個新手,不知道如何着手。 有什麼可能的方法來做到這一點?如何使用MVVM

回答

1

有幾個方法可以做到這一點取決於如何結合鬆散兩個視圖模型。如果您在上傳視圖模型中直接引用了第二個視圖模型,則可以在顯示此視圖模型/視圖時傳遞數據。

這似乎是最明智的選擇,如果A)的數據是第二視圖模型的要求和b)上傳視圖模型是負責創建第二個視圖模式。在這種情況下,您可以將數據作爲第二個視圖模型構造函數中的依賴項傳遞。

替代方法包括使用事件聚合作爲調解人可以在兩個視圖模型之間的數據,但我會用第一種方法去。

+0

是。我有我的UploadViewModel中的第二個viewmodel直接引用,我也可以傳遞該數據作爲構造參數。但一旦我關閉這個上傳視圖窗口,然後打開其中一個負責顯示上傳的數據第二種觀點,所有的數據刷新出來,給我空的數據表。 – SST

+1

那麼,如所提到的,數據應被存儲在傳遞到您的第二視圖模型的模型,所以所上傳的數據應該轉換成可被存儲爲狀態模型中的一個格式(例如一個字節數組) – devdigital

1

如果你使用MVVM,你應該在你的模型類訪問Excel文件。 ViewModels通常用於將模型數據轉換爲您的Views可以顯示的格式,而不是用於訪問數據。