这里有两个链接,简要描述了两者的区别:无国籍,有状态
简而言之,在“无状态”场景中,我们直接将视图绑定到模型,视图模型只是公开整个对象,而不是它们的属性,因此我们不需要模型和视图模型之间的任何同步。
在“状态”场景中,我们创建模型对象的副本并将其绑定到视图。
在“无状态”的情况下有什么坏处吗?因为这似乎是一种默认的方式。是什么阻止了我们在模型级别上实现INotifyDataErrorInfo、INPC和所有的东西?
发布于 2016-06-10 11:42:02
是什么阻止了我们在模型级别上实现INotifyDataErrorInfo、INPC和所有的东西?
业务如何描述模型以及如何在UI中显示模型可以(而且将来)是不同的。
虽然简单的场景可能会使模型和UI看起来完全相同,但现实并不那么简单。ViewModel的主要目的是将业务域模型转换为易于绑定到UI的形式。
发布于 2016-06-10 18:23:47
几乎任何时候,用户界面都会要求ViewModel具有不属于模型的状态,所以我认为在MVVM中没有所谓的“无状态”ViewModel。
下面是一些例子:
https://softwareengineering.stackexchange.com/questions/321822
复制相似问题