gpt4 book ai didi

c# - 如何将 IsSelected for MVVM 移出业务对象?

转载 作者:行者123 更新时间:2023-12-03 10:55:34 26 4
gpt4 key购买 nike

我在 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com