我无法理解如何在涉及到列表/集合时应用MVVM模式。如何使用集合构造MVVM?
说出MainModel有几个属性和方法,以及含有其他DetailModel对象的列表。 DetailModel对象可以添加,删除或重新排序。
的的MainView会显示相关的根模式中的一些控制,并可以从列表中填充的列表框。每个项目都将通过DetailModelView UserControl拥有自己的子视图。
最后,有一个MainViewModel。它具有由MainModel的属性和方法支持的属性,绑定到主视图,更改通知使所有内容保持同步。 (到现在为止,我很舒服的模式 - 更多的情况下,说明这有我丢失的东西根本...)
当涉及到处理名单,我感到困惑。我遇到了几个例子,其中MainViewModel只是将DetailModel的列表公开给视图,而DetailModelViews直接绑定到模型上。这功能,但是有问题。它并不总是遵循该模式(不存在DetailViewModel),并且它促使我在我的详细模型中包含一些与UI相关的代码。在我看来,MainViewModel应该公开一个用于UI绑定的DetailViewModel列表,但我坚持如何实现这样的事情!
应该如何管理两个列表(DetailModels和DetailViewModels)?我真的很困惑,因为我最初填充DetailViewModel列表,以及如何处理添加,删除或更改项目的顺序以保持它们的同步!
这非常简洁地描述了最终解决方案。我的“MainViewModel”也有命令将列表中的选定项目向上或向下移动... – mbmcavoy