49

如何创建丰富的用户界面 Windows 应用程序,例如 Photo Shop。

我正在某处寻找带有 C# 的 WinForms 的干净 MVC 教程。(不是ASP.NET MVC。)

是 Windows 平台上的新手;大多数 MSDN 和互联网教程基本上都将所有内容都放入 Form 类中。进一步的默认事件是在表单内部处理的,而不是向控件/模型发送事件,这反过来会改变视图的状态。

或者 Windows 应用程序的首选方法是什么?

4

3 回答 3

10

Derick Bailey(通过 Los Techies)发表了一些精彩的文章(和完整的演示源代码),用于他在 WinForms 应用程序中实现 MVP,并添加了一些其他好的模式(应用程序控制器、事件聚合器)。

该作品的灵感来自Jeremy D Miller 题为“构建自己的 CAB”的系列文章

于 2010-05-10T13:24:22.010 回答
2

可能值得查看 Model-View-ViewModel(如果您特别感兴趣/乐于使用 WPF)。

它专门针对 WPF 和 Silverlight 进行了调整,并利用数据绑定将所有内容粘合在一起。

网上有很多资源可以找到更多信息,包括 John Gossman 的介绍,以及 Josh Smith 的一篇好文章,他的博客上还有其他与 MVVM 相关的资源。

于 2009-06-05T14:07:45.577 回答
-1

对于 Windows 应用程序,Windows 操作系统会无意中成为控制器的一部分。

模型可以订阅各种事件/消息(例如鼠标点击、移动、窗口大小调整、按钮点击...)。当它完成更改更新处理后,视图将通过重绘操作进行更新。

Windows 操作系统在这里充当控制器,因为它既向模型(例如鼠标单击)或向视图发送消息(告诉它一部分窗口是脏的,需要重绘)。

当然,对于任何商业应用程序,您都可以实现自己的模型和文档结构,并将它们与相应的 WinForm 对象分开。

在 .net 中这不是很清楚,因为模型和视图部分只有一个文件。在 MFC 中非常清楚 - 使用 CDocument 类及其对应的 CView 类。

与 MVC 模式相比,对于 Windows 应用程序,它有助于理解 Windows 消息传递体系结构以及如何处理它们。

于 2009-06-05T14:25:23.793 回答