【发布时间】:2012-04-25 17:15:31
【问题描述】:
我很难理解这种模式。 在工作中,我们正在使用被动视图来实现 MVP。我们正在使用 WinForms。
- 所以我们有一个 View(它是一个 windows 窗体),它实现了一个界面并有一个演示者。
- 演示者获取视图的接口实例 实现并管理视图抛出接口。
- 演示者可以看到模型和经理。
- 管理器处理多个模型的数据库持久性,但它不手动添加它们,它使用一个单独的层,称为数据,因此它告诉该层持久化数据
- 然后数据层使用实体框架将数据持久化到数据库中
假设我们有一个客户端视图,它代表一个模型客户端,并且我们的数据库中有一个名为客户端的表。 客户可以有姓名和城市。
我们还有一个 Cities 视图,它是一个简单的添加、编辑和删除,它还代表一个模型 City,以及一个表 City。
现在在我们的客户视图中,我们想让用户添加一个新城市,所以在视图中,我们打开另一个视图,城市视图,然后用户创建一个新城市。
从客户视图,我想看看用户添加了哪个城市,这怎么可能?视图会返回一些东西吗?
(我想在内存中,添加城市时不要将任何东西保存到数据库中,我只想要城市的模型)
我认为返回模型并从视图中查看模型不是 MVP。那我该怎么办呢?
【问题讨论】:
-
我假设您的 ViewModel 会在数据更改时触发适当的事件来更新 UI?
-
ViewModel 是什么意思?
-
听起来你的界面就是 ViewModel。当您在界面上设置某些内容时,UI 会更新,是吗?
-
是的,确实如此。那么 Cities 视图应该可以访问 Clients 界面吗?
-
听起来表单应该简单地将接口元素作为属性公开,然后您的其他表单可以简单地与该接口对话以设置项目。