作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 C#/WPF 中有一个相当大的应用程序,它是用 MVVM 制作的(有点)。
在 ListView 中,我使用 IsSelected 绑定(bind)到所选项目。这些 IsSelected 属性位于我的应用程序的模型中,而不是 ViewModel 中。
目前我只有一个 View 模型指向业务对象中的一个列表(模型,而不是 View 模型),但将来我可能想要更改它,并且模型内的 IsSelected 属性不再可能(否则两个 ViewModel 都会有相同的选定项目)。
选择模式是多重的,范围可以在 1 到 128(列表的最大长度)项之间。
我认为它应该以某种方式在 View 模型中,但是我应该如何实现呢?
最佳答案
使用 MVVM 时,您不受限于单一 View 模型。是的,您可以从 View 模型中公开模型的一部分,但您也可以公开其他 View 模型。
在这种情况下,我建议将集合的实例包装在它们自己的 View 模型中,并将您的项目模板的绑定(bind)根设置为此。
例如,如果您将数据绑定(bind)到模型集合,您可以将每个模型的实例传递给包装模型的 View 模型,然后公开 IsSelected
用于绑定(bind) View 模型。
关于c# - 如何将 IsSelected for MVVM 移出业务对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12214839/
我是一名优秀的程序员,十分优秀!