2013-05-08 32 views
3

我开发了一个WPF应用程序。我有一个从窗口继承的主窗口,一个tabcontrol和这个tabcontrol中从UserControl继承的许多tabitems。每个tabitem都有自己的cs文件,我在C#中编写所有的businesslogic代码,并在其中完成UI开发的XAML文件。我也有一个SQL Server数据库,我连接到低谷LINQ。什么是我的应用程序中的MVVM设计模式的控制器

所以我必须写我的选择哪个控制器我在我的应用程序中使用。这是我感到困惑,因为我还没有手动编程控制器,我认为ViewModel将像我的情况下的控制器行为。这是正确的吗? ViewModel的行为可以像控制器一样吗?

+2

这更适合程序员交流。堆栈溢出更多的是代码中的特定编程问题。 – scrappedcola 2013-05-08 15:01:15

回答

4

控制器可以发送命令到它的相关联的视图改变视图的模型的介绍(例如,通过经由一个文档滚动)。它还可以向模型发送命令以更新模型的状态(例如,编辑文档)。 Model_View_Controller

视图模型是一个即一种兼作在视图中,这是视图数据绑定的目标的模型之间进行调解的视图的抽象“的视图模式”。它可以被看作是控制器(在MVC模式中)的一个特殊方面,它扮演着一个转换器的角色,将模型信息转换为视图信息并将视图中的命令传递到模型中。视图模型公开属性,命令和抽象。 Model_View_ViewModel

引进MVVMC(MVC + MVVM)的是在你想开车许多类似的双视图查看模型(用例)的情况下所必要的。然后你可以引入控制器。 Model_View_ViewModel_Controller

+0

+1用于描述您可能想要在MVVM中选择MVVMC的情况MVVM – scotru 2014-09-28 21:21:42

+0

view-model只是用于在视图和模型之间执行数据绑定的模型。可能令人困惑的是,MVVM模式将视图模型嵌入控制器中,而不是将其分开(MVVMC)。 – 2014-11-20 14:51:36

相关问题