我無法理解如何在涉及到列表/集合時應用MVVM模式。如何使用集合構造MVVM?
說出MainModel有幾個屬性和方法,以及含有其他DetailModel對象的列表。 DetailModel對象可以添加,刪除或重新排序。
的的MainView會顯示相關的根模式中的一些控制,並可以從列表中填充的列表框。每個項目都將通過DetailModelView UserControl擁有自己的子視圖。
最後,有一個MainViewModel。它具有由MainModel的屬性和方法支持的屬性,綁定到主視圖,更改通知使所有內容保持同步。 (到現在爲止,我很舒服的模式 - 更多的情況下,說明這有我丟失的東西根本...)
當涉及到處理名單,我感到困惑。我遇到了幾個例子,其中MainViewModel只是將DetailModel的列表公開給視圖,而DetailModelViews直接綁定到模型上。這功能,但是有問題。它並不總是遵循該模式(不存在DetailViewModel),並且它促使我在我的詳細模型中包含一些與UI相關的代碼。在我看來,MainViewModel應該公開一個用於UI綁定的DetailViewModel列表,但我堅持如何實現這樣的事情!
應該如何管理兩個列表(DetailModels和DetailViewModels)?我真的很困惑,因爲我最初填充DetailViewModel列表,以及如何處理添加,刪除或更改項目的順序以保持它們的同步!
這非常簡潔地描述了最終解決方案。我的「MainViewModel」也有命令將列表中的選定項目向上或向下移動... – mbmcavoy