2013-07-23 52 views
0

我一直在爲此奮鬥一段時間。到目前爲止,我一直在MVC項目中保存一個單身類的支持數據,但這已經開始給我帶來問題。我正在尋找一種將我的支持數據保存在一個集中的,易於訪問的位置的好方法,但我不想將其設置爲靜態,並且在實施此類系統時遇到問題。MVVM - 處理備份數據

例如,我有一個名爲GameContainer的類,它包含所有創建對象的ObservableCollection s。我希望能夠訪問這些ObservableCollection和在我的代碼中包含的對象實例,我想維護這種結構,除非有更好的方法來實現它。如果有更好的方法,我很樂意瞭解它。

我在初始化類中有一個方法,當程序啓動時,我們會說它會創建每個對象的10個實例並將它們添加到GameContainer中的ObservableCollection。所以現在我的主屏幕的ViewModel需要訪問這些對象。不使GameContainer靜態,我的ViewModel如何訪問所需的數據?

這是一個需要國際奧委會的情況嗎?如果是這樣,我該如何恰當地實施?

任何建議或意見將不勝感激。我最近在這裏停滯不前,我很想能夠繼續在我的項目上取得進展。

謝謝。我期待看到你要說的話。

+0

通過其構造函數將'GameContainer'傳遞給視圖模型? – McGarnagle

+0

你能解釋爲什麼單身人士課程會對你造成問題嗎?根據你對問題的描述,聽起來像用Paul建議的那樣用靜態訪問器創建一個單例是最好的選擇。 – Sauce

+0

這些問題源於使用LINQ通過名爲OLinq的擴展過濾和綁定數據到UI。目前,該擴展不適用於任何靜態和顯然即使它會導致內存泄漏。我想現在是時候咬緊牙關,用ICollectionView來過濾我的數據,除非我能找到更好的東西。 –

回答

3

單身人士通常會有一個靜態訪問器。

所有你需要的是讓你的viewmodels設置一個屬性等於GameContainer,或者單獨的屬性設置到GameContainer的各個memebers。

+0

感謝您的回覆。這就是我一直在做的事情。正如我在上面的評論中提到的,這個不適合我的唯一原因是由於一個擴展與任何靜態表現不一樣。看起來,這可能是延長延期的時候了。 –