1
6
为了使视图完全独立于模型,您需要重新生成在许多情况下与view model中的模型类型相同的类型。 例子
模型包含
所以问题是,
是否应该有模型的“viewmodel版本”
在这两种情况下,您都很可能希望这些属性是可观察的。 考虑 MVVM背后的目标是什么?我们经常喜欢列出一个模式存在的原因,但是在这个例子中只有两个。
在viewmodel上公开模型类型不会对上述任何一个目标构成障碍。事实上,它有助于测试性,因为需要测试的类型和成员的数量减少了。 在我看来,实现inotifyproperty并没有改变 暗示 绑定到视觉效果。某些服务可能希望观察模型对象属性的更改,这可能有其他原因。
模型与视图分离的关键原则是隐藏关于视图如何从模型本身呈现模型的任何细节。添加一个
底线 要求模型公开可观察的属性并没有违反mvvm,这是一个简单而一般的要求,不要求模型对任何视图有任何特定的知识,或者确实涉及到任何“视觉效果”。 |
2
3
不,在我看来很好- 数据服务实体库 只是他所有DTO/业务对象继承自的基类的名称,这个设置没有什么问题(这个名称让您有点吃惊吗?)。如果他将数据放在viewmodel中,然后将其视图绑定到vm,那么您至少拥有mvvm的vvm部分。 我最担心的是他的名字 防火性能改变 方法-我个人会称之为 论 财产发生了变化。 |
Drago · Linq通过比较Id和具有Id的对象列表来查询获取列表 2 年前 |
Niyazi Babayev · 如何在表达式中动态应用表达式? 2 年前 |
Murat Güzel · EF存储库模式错误{'Id'}已被跟踪 2 年前 |
dotnetdevcsharp · 减少基于数据类型获取设置的方法数量 2 年前 |
saravanan049 · 在实体框架中回滚Azure SQL数据库 2 年前 |