我在使用MVVM(有点)制作的C#/ WPF中有一个相当大的应用程序。 在列表视图中,我使用IsSelected绑定到所选项目。这些IsSelected属性位于我的应用程序的模型中,而不是ViewModel。
目前我只有一个viewmodel指向业务对象(模型,而不是视图模型)中的一个列表,但是将来我可能想要更改它,并且不再可能在模型中使用IsSelected属性(否则两者都是ViewModels将具有相同的选定项目。)
选择模式为多个,可以在1到128(列表的最大长度)项目之间。
我认为它应该以某种方式存在于viewmodel中,但我该如何实现呢?
答案 0 :(得分:4)
使用MVVM时,您不限于单一视图模型。是的,您可能会从视图模型中公开模型的部分内容,但您也可以公开其他视图模型。
在这种情况下,我建议在自己的视图模型中包装集合的实例,并将项目模板的绑定根设置为。
例如,如果您是对模型集合的数据绑定,则可以将每个模型的实例传递给包装模型的视图模型,然后在视图模型上公开IsSelected
以进行绑定