我的任务是重构代码支持到Windows窗体。我需要清空表单上正在进行的所有计算并将它们移动到控制器类。然后,表单将在创建时创建控制器的实例,并在事件处理程序中引用控制器的方法。这应该使单元测试更容易执行。
我遇到的一个问题是,计算通常会检查表单上的控件(如文本框),或检查控件是否存在。显然,在正常情况下,控制器无法参考这些数据。有人告诉我,我可以使用控制器类中的属性来设置它,并做一些事情让表单绑定到控制器,但这对我来说都不熟悉。我仍然很难理解我应该做的确切的事情。
非常感谢任何帮助!谢谢!
答案 0 :(得分:1)
您可以使用几乎每个人都使用的MVVM模式和WPF以及ASP.NET MVC框架作为示例。当你使用" controller"这个词时,我建议你需要更密切地关注MVC。您可以定义一个视图模型类,其作用是包含视图所需的数据,即表单。您的控制器将视图模型公开给视图,并直接使用该视图模型。如果控制器需要进行任何验证等,它就会在该视图模型上进行验证。
视图从控制器获取视图模型并将其绑定到其控件。如果需要确定控件是否存在,则视图有责任这样做。
视图模型是视图使用的模型,即数据。这可能与数据访问级别使用的模型相同,也可能不同。在高度架构的应用程序中,您的数据访问代码将生成一个模型,数据将被移动到DTO中的应用程序,然后进入视图模型以进行实际演示。在某些情况下,这三种形状可能都不同。