2013-05-19 47 views
1

我很喜歡MvvmCross,但我對MVVM技術很陌生。 MVVM似乎圍繞View和ViewModel並在它們之間導航。但是,應用程序範圍內的項目呢?也許我的應用程序有一個可以影響所有視圖和視圖模型行爲的模式。這看起來像一個ApplicationModel或ApplicationViewModel。或者,也許只是使用App類本身來存儲應用程序範圍內的東西?這個概念的推薦做法是什麼?如果使用App類本身是一個好主意,我認爲有一種簡單的方法可以從任何地方獲得對App實例的引用?還沒有看。MvvmCross:應用程序寬視圖模型?

回答

2

A ViewModel是一個視圖模型 - 所以這就是當前MvvmCross焦點所在的位置。

對於這種應用程序範圍的行爲,我認爲最好一次考慮一個用例。

的例子您提供的是:

也許我的應用程序,它可以在一個模式將影響所有視圖和視圖模型的行爲。

沒有太多的細節,但是對於這種類型的事情我可能也許是:

  • 地方這Mode一個Singleton服務中
  • 將使用信使發送ModeChangedMessage■當在Mode改變
  • 將提供該服務和使用構造函數注入的相關ViewModels的信使
  • ViewModels ca N,則認購ModeChangedMessage在信使
  • 或許會使用繼承我的ViewModels共享它們之間的代碼(即他們會從BaseViewModel類繼承)

當然還有其他方法可以做到這一點,但是這是一個建議


如果有您想請教一下,請問另外一個問題了一些其他的應用程序廣泛使用的情況下 - 但請包括更多細節 - 如可能提供有關您想進行一些僞代碼分享。我發現真正的用例更容易解決 - 抽象的想法很難說。


如果有幫助:

相關問題