C#模型视图控制器

时间:2009-03-03 18:42:02

标签: c# model-view-controller model view

所以我在模型 - 视图 - 控制器模式中创建一个C#/ Winforms应用程序。我的视图控制器需要实例化多组对象。对象组是模型的元素和视图的元素。例如,文本框和模型将放在该文本框后面。

我想知道这样做的最佳方法是将所有内容放入某种集合中并用密钥将它们绑在一起吗?

3 个答案:

答案 0 :(得分:3)

在我构建的WinForm MVC应用程序中,我通常不允许控制器实例化任何东西(我尝试将“new”关键字保留在我的控制器之外)。

如果我需要一个对象,我会向它请求一个服务,并且在内部该服务将从数据源(存储库等)获取该对象,或者在新对象的情况下,它可能会使用某种对象工厂给我一个新对象(任何必要的预填充属性已设置为默认值,规则运行等)。

我喜欢考虑这类问题的方法是:如果我没有视图的GUI,我将如何使这项工作(并使其可重用),而是有一个命令行输入我的看法?创建/添加/删除/更新模型的逻辑应该在您的域中的某个位置,而不是在控制器中。然后控制器就成为模型和视图之间的中介。该视图成为一种I / O机制,它只是命令行界面的一个更漂亮的版本。

希望这是有道理的。

答案 1 :(得分:0)

您是否考虑过使用WPF而不是WinForms?它有一个更好的类似MVC的模型和更强大的内置数据绑定。它可能会解决您的问题,并帮助您使用更现代的技术构建。

答案 2 :(得分:0)

也许你应该设计你的模型以匹配视图需要的东西?然后控制器只有一个模型传递给视图。