我对MVVM感到有些困惑。
我理解这个概念并且可以看到优点。我的问题是:ViewModel是否直接从模型传递数据。
例如,假设我有一个带有findByName()方法的“User”模型。 ViewModel会调用它来传递 视图的相关用户详细信息。
模型可能会重新启动一组“用户”对象,每个对象都有名称,电子邮件地址等属性,也可能有方法。
我的问题是,ViewModel应该将一组User对象返回给视图,还是返回一个重构的版本 仅包含视图需要的内容?
据我了解,在这种情况下,“User”对象是模型层的一部分,在MVVM中,View应仅依赖于ViewModel。
我的问题是ViewModel中需要的大量看似冗余的绑定逻辑,用于重构输出。
将User对象集直接传递给View(通过ViewModel)会简单得多。
答案 0 :(得分:1)
确实有一点冗余。但是,如果通过呈现对象来实现MVVM,则可以使用
最后一个很重要。现在大多数情况下,演示文稿绑定都是动态的,并且无声地失败 - 网页,WPF,你可以命名它。这意味着,如果有人决定重命名模型上的某些内容,它会在您的GUI中突然中断,而您将不会知道。
通过在模型和视图之间放置一个虚拟机,您可以自行缓冲此类更改。
如果您希望继续使用这些用户的工作,我会说它 - 它会帮助您获得有关GUI的快速反馈。但是,这些User对象第一次没有完全按照View所需的方式执行,或者您需要通知View的更改,或者您发现自己污染了模型,或者绑定中断了某些内容,也许这是一个很好的时机。转移到MVVM。
答案 1 :(得分:0)
这不是仅仅将休息时间移动到使用该模型的ViewModel吗?你仍然需要经历并更新所有这些。
如果我重命名了某些内容(例如将“姓氏”更改为“姓氏”),我希望事情能够破裂。我没有看到如何在VM层中添加绑定来修复它。