0

我在 C#/WPF 中有一个相当大的应用程序,它是用 MVVM 制作的(有点)。在列表视图中,我使用 IsSelected 绑定到所选项目。这些 IsSelected 属性位于我的应用程序的模型中,而不是 ViewModel 中。

目前我只有一个视图模型指向业务对象中的一个列表(模型,而不是视图模型),但将来我可能想要更改它,并且模型内的 IsSelected 属性不再可能(否则两个 ViewModel 都会有相同的选定项目)。

选择模式是多重的,范围可以在 1 到 128(列表的最大长度)项之间。

我认为它应该以某种方式在视图模型中,但是我应该如何实现呢?

4

1 回答 1

4

使用 MVVM 时,您不受限于单一视图模型。是的,您可以视图模型中公开模型的一部分,但您也可以公开其他视图模型。

在这种情况下,我建议将集合的实例包装在它们自己的视图模型中,并将您的项目模板的绑定根设置为此。

例如,如果您将数据绑定到模型集合,您可以将每个模型的实例传递给包装模型的视图模型,然后IsSelected在视图模型上公开 for 绑定。

于 2012-08-31T12:15:42.077 回答