【发布时间】:2013-12-08 13:00:43
【问题描述】:
我正在尝试在我的新项目(一个 Windows 窗体 C# 应用程序)中使用 Model-View-Controller-Pattern。 我将我的项目拆分为几个子项目:
Core
UI (View)
Controller
Model
Services
Helper
Tests
项目依赖如下:
我的 UI-Project 包含 2 个表单,ListForm 和 AddForm(还有其他表单,但这些与此问题无关)。
在 Controller-Project 中,我有不同表单的接口,控制器用于更新视图。
在 Core-Project 中,我初始化了一个新的 ListForm、Controller 和 Model。
现在,如果用户单击 ListForm 内的 Add-Button,我希望 AddForm 显示。 但是,如果 Controller 甚至不知道 UI-Project,我如何在 Controller 中创建 AddForm 的新实例?
我尝试使用 Service,但由于 Service 必须知道 UI-Project 才能创建实例,因此我会有循环依赖(根据 Visual Studio)。
如果用户单击 ListForm 内的 Add-Button,我如何显示 AddForm? (每次最多显示 1 个 AddForm)。
【问题讨论】:
-
我已经编辑了你的标题。请参阅“Should questions include “tags” in their titles?”,其中的共识是“不,他们不应该”。
标签: c# winforms forms model-view-controller circular-dependency