我正在开发一个具有相当大的 MainForm 的桌面应用程序。在不同级别的多个容器中有很多控件(SplitContainers、TabPages、Panels)。
现在我想通过将负责数据绑定和清除控件或执行用户交互的所有控制器代码分离到单独的控制器类中来重构这个类。
[编辑]
目的
此应用程序的目的是跟踪订单(称为 Job)及其位置(称为 Jobitem)。每个 Job 都与一个客户相关,每个 Jobitem 都与一个 Article 相关(Jobitem 包含特定于其物品制造过程的信息,因此它包裹着该物品)。Job、Jobitem、Customer 和 Article 具有由 PropertyManager 类管理的动态属性(基本键/值对)。
建筑学
我的应用程序分为 2 个主要项目: 核心包含 3 个 LinqToSQL DataContext 类中的数据模型:
ArticleManagement
JobManagement
PropertyManagement
对于每个 DataContext 类,都有一个XyzManager
类将集合中的 LinqToSQL 对象提供给 GUI,封装了 LinqToSQL 数据源。它还处理对其相应 DataContext 类型的创建、删除和修改。
然后我有一个 GUI 项目,自然包含一个主窗体和一些附加窗体,如选项等。截至目前,我的 GUI 项目包含对每个 XyzManager 类的引用,并通过 Manager 类获取和设置数据作为用户交互决定,包含所有控制逻辑。
我已将大部分独立逻辑放入主表单类之外的静态实用程序类中,但我猜这不是理想的方法。
[/编辑]
这是我的第一个更大的桌面应用程序,我很难封装 GUI。截至目前,所有负责处理用户交互的控制器代码都位于 MainForm 类中。
我知道 MVC 模式,但我不确定如何使用我当前的设计将它应用到 C# WinForm 上。
仅我的自定义代码就有2400多行代码,不计入表单自动生成的代码,呈上升趋势。我想重构这个,但我不知道如何以更优雅的方式解决这个问题。