我想了解MVVM模式,並且存在一些不明確的問題。我的Xamarin Forms應用程序將有幾個視圖(這很明顯)。他們每個人都必須綁定到不同的ModelView類嗎?或者也許應該只有一個MV?MVVM模式中應該只有一個ViewModel類嗎?
3
A
回答
1
我一直認爲「每個視圖都有自己的虛擬機」 - 模型是一個綜合設計的子集。
我會從痛苦的經歷中說出:不要單獨基於它們所支持的視圖/ UI設計模型。如果沒有全面的模型後端,您將很難將所有的部分整合到一個連貫的,完整的商業模式中。貧血類,冗餘位,不完整和錯誤的驗證,相同的屬性 - 不同的名稱,與現有代碼不兼容,hacky glue代碼,程序員違反對方代碼,不可重用,不重用現有類。對於我們來說,這一切都在3個月的測試中失敗了。
1
Yes和No
是 - >基本的想法是,你ViewModel
只能由一個視圖中使用。如果您使用ViewModel
來填充某個區域或其他內容,那麼ViewModel
將被「重複使用」,每次該視圖出現在不同的位置時。
否 - >您可以在視圖模型中使用多個模型。視圖模型的目的是抽象出業務/數據層(即模型)。 但是,使用多個模型通常表明視圖太大。你可能想把它分成用戶控件(它們有自己的視圖模型)。
參考文獻:
相關問題
- 1. MVVM中的ViewModel應該引用View嗎?
- 2. WPF/MVVM - 我們應該爲每個ViewModel創建一個不同的類嗎?
- 3. 在MVVM中,每個ViewModel只與一個Model耦合嗎?
- 4. 我應該在Silverlight項目中使用Model-View-ViewModel(MVVM)模式嗎?
- 5. MVVM模式中的ViewModel引用應該使用哪些類型的對象?
- 6. Caliburn.Micro GetAllInstances只返回一個viewModel(Caliburn.Micro MVVM)
- 7. 誰應該在iOS MVVM中創建ViewModel?
- 8. MVVM模式,ViewModel DataContext問題
- 9. MVVM模式,ViewModel集合
- 10. 在Android上使用MVVM時,每個Activity應該有一個(且只有一個)ViewModel?
- 11. MVVM:ViewModel應該有一個成員到另一個ViewModel嗎?
- 12. Spark - SparkSession應該只有一個嗎?
- 13. java包應該只有一個公共類嗎?
- 14. 從WPF中的ViewModel類(MVVM模式)更新用戶界面
- 15. MVVM:我應該如何將ViewModel轉換爲模型?
- 16. 應該/可以生成一個類的數據庫模式嗎?
- 17. 使用MVVM模式時訪問ViewModel
- 18. 模式是MVVM中的反模式嗎?
- 19. 每個應用程序應該只有一個EventSource對象嗎?
- 20. 在MVVM模型中模型應該實現INotifyPropertyChanged接口嗎?
- 21. 我還應該創建一個類嗎?如果它只能有一個實例?
- 22. 應該控制在ViewModel中嗎?
- 23. ViewModel應該繼承WPF中的DependencyObject嗎?
- 24. 視圖的創建應該是View或ViewModel [MVVM]的一部分?
- 25. 有了MVVM,每個UI窗口都有自己的ViewModel嗎?
- 26. MVVM模型到ViewModel通信
- 27. 我應該創建C++中只有一個函數的子類嗎?
- 28. MVVM模型應該如何?
- 29. Viewmodel有2個viewmodel,只有一個需要
- 30. MVVM ViewModel與MVC ViewModel
它依賴。通常每個View都有它自己的VM,但是兩個相似的視圖可以共享一個VM。對於每個View來說,使用同一個虛擬機是不尋常的,但對於一個可能有意義的簡單應用程序來說,這是不尋常的。 – Jason