Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf MVVM模式是MVC和x2B的共生体吗;PAC模式?_Wpf_Design Patterns_Model View Controller_Mvvm_Pac - Fatal编程技术网

Wpf MVVM模式是MVC和x2B的共生体吗;PAC模式?

Wpf MVVM模式是MVC和x2B的共生体吗;PAC模式?,wpf,design-patterns,model-view-controller,mvvm,pac,Wpf,Design Patterns,Model View Controller,Mvvm,Pac,我浏览过维基百科,发现了这样一篇文章: 连杆上部的一个零件: MVC4WPF是一种开源的、可扩展的、自动化的代码模式,它是在信息控制公司开发的,用于基于模型视图控制器(MVC)和表示抽象控制(PAC)模式……/P>的Windows演示基础(WPF)开发。 我知道,WPF/Silverlight确实使用MVVM模式:模型-视图-视图-模型 那么MVC4WPF是MVVM的第一个版本吗 我不太了解WPF/Silverlight开发的历史,但MVVM总是让我想起某种MVC 如果这是真的,那么每当我看

我浏览过维基百科,发现了这样一篇文章:

连杆上部的一个零件:

MVC4WPF是一种开源的、可扩展的、自动化的代码模式,它是在信息控制公司开发的,用于基于模型视图控制器(MVC)和表示抽象控制(PAC)模式……/P>的Windows演示基础(WPF)开发。 我知道,WPF/Silverlight确实使用MVVM模式:模型-视图-视图-模型

那么MVC4WPF是MVVM的第一个版本吗

我不太了解WPF/Silverlight开发的历史,但MVVM总是让我想起某种MVC


如果这是真的,那么每当我看到这样的问题,我总是在想

你想把你的独立关注点称为什么其实并不重要。你会听到很多WPF的人谈论MVVM,但归根结底,这一切都是为了让你的代码保持独立。在MVVM中,您有:

  • 模型所有数据类。他什么都不知道
  • 查看您必须显示您的数据。它知道模型,但不知道如何得到它们。通过绑定“了解”ViewModel。根据将它们连接在一起的方式,它甚至可能创建ViewModel
  • ViewModel这是视图和模型之间的粘合剂。它可以了解视图,也可以尽力从ViewModel中隐藏视图
在MVC中,您有:

  • 模型所有数据类。他什么都不知道
  • 查看您必须显示您的数据。了解模型,但不知道如何获取模型
  • 控制器这是视图和模型之间的粘合剂。它了解视图和模型
实际上,最后一点是所有的变化(因此WPF博士的MV poo)。在WPF中,XAML中的绑定非常好,为什么要编写一堆代码?不管你想怎么称呼它,如果视图对poo有点了解,那么在WPF中就更容易了

由于从未使用过PAC模式,我不能说它的优点,但从我的角度来看,它似乎与MVC非常相似。所以,我会把它归类为一点MV poo

现在,考虑到MVC4WPF自2009年以来就没有发布过(而且他们的网站上的文档截至2013年7月6日已经关闭),我建议你避开它。我不能谈论它的优点或缺点,但是如果你想要一个好的MVVM框架,并且两者都有很好的支持和评论的话


我还要指出,并不是所有的应用程序都需要《公安条例》

“控制器-这是视图和模型之间的粘合剂。它知道视图和模型。”-你确定这句话吗?也许你想重新考虑一下,是的。From-控制器可以向其关联视图发送命令,以更改视图对模型的表示(例如,通过滚动文档)。它还可以向模型发送命令以更新模型的状态(例如,编辑文档)。在MVVM中,视图应该只知道ViewModel,而不知道模型。对我来说,这是MVVM和MVC之间的主要区别,在MVVM中,视图知道ViewModel,ViewModel知道模型。在MVC中,控制器同时知道模型和视图,这使得保持干净变得更加困难。我可以看到这个论点,但是如果你有一个模型类的
DataTemplate
,那么视图肯定知道模型。或
数据网格中的列。