我正在编写一个WinForms应用程序,并希望拥有一个“MVC类型”设计。实际上它更像是MVP或MVVM,
计划是让一个中央控制器完成所有实际工作,以便表单只渲染ViewModel并处理用户输入,但实际执行某些操作的所有内容都通过Controller。
我只是想知道这是不是一个好主意,在哪里放置控制器?目前的想法是在Program.cs中初始化一个静态类(在一些依赖项中发送,比如IMyDatabaseRepository),这样它就会保留一个委托用户界面和模型之间工作的控制器。
正如您可能猜到的,我来自Web背景,对WinForms架构缺乏经验。以前,我的MainForm是Controller类,包含所有状态变量,这显然意味着我的MainForm是我的应用程序,而不仅仅是用户界面的一部分。
答案 0 :(得分:2)
好问题迈克尔!
以下是一些链接:
希望这些可以帮助您正确构建项目!
答案 1 :(得分:0)
我不知道这是否是更好的方法,但我正在使用Structuremap创建我的控制器和数据库实例。
主窗体中没有真正的代码 - 它只是加载第一组控件然后启动控制器。表单上的用户控件使用StructureMap访问控制器
我的项目是常规WinForms而不是WPF,是我第一次在WinForms中使用MVC模式。
答案 2 :(得分:0)
您可以查看 WAF Windows Forms Adapter 下载。它附带了BookLibrary示例应用程序,它使用 Controller / MVVM设计和Windows Forms。