48

我已经阅读了许多关于 Model-View-ViewModel 模式的好文章,我的团队打算在我们的应用程序的最新版本中实现这种模式。我仍然没有完全了解所有这些可以一起完成这项工作的部分。我想找到一个可以解决的这种模式的好例子。小规模的事情,就像 Jason Dolinger 在他的视频中所做的那样但我想要一些我可以自己以较慢的速度完成的事情。

在此先感谢您的帮助。

4

8 回答 8

29

基本上 ViewModel 是模型的包装器。现在这可能还不是很有帮助:-) 将模型视为您的应用程序使用的数据,比如说一个人。现在一个人有一个生日,您可能希望有一个表格来输入这个人的生日。假设我们只是使用一个简单的 TextBox,日期显示为 01-02-2009 12:00:00AM。对于初学者,我们不想要时间部分,我们也可能对 01-02-2009 部分不满意,因为这取决于您的语言环境设置。

所以这里 ViewModel 来了。它包装了 Person 类并将日期公开为三个整数值,年、月和日。在属性集中,它尝试从不同的值构建日期并显示可能发生的任何错误。

简单地说,ViewModel 是专门针对特定视图(显示)的模型包装器。它同时消除了大多数 IValueConvertor。

Josh Smith 在这里有一个很好的解释:http: //joshsmithonwpf.wordpress.com/2008/11/14/using-a-viewmodel-to-provide-meaningful-validation-error-messages和一个大讨论:http:// /groups.google.com/group/wpf-disciples/browse_thread/thread/3fe270cd107f184f?pli=1

于 2009-01-06T13:41:23.357 回答
2

Prism 4.0 现在包括用于创建 MVVM 应用程序的文档。这是针对使用 Prism 库的,但这些概念通常适用于 MVVM 模式。

http://compositewpf.codeplex.com/releases

于 2010-07-07T15:40:38.460 回答
2

这里还有一个要添加到列表中的内容:Tony Sneed 的 Simple MVVM Toolkit(您的真正的):http ://simplemvvmtoolkit.codeplex.com 。

该工具包由帮助类、Visual Studio 项模板和代码片段组成。除了实际的工具包之外,还有一个示例应用程序,其中包含有关如何使用 MVVM 模式构建基本 Silverlight 应用程序的分步说明。

于 2011-01-01T14:26:56.550 回答
1

Nikhil Kothari 有一篇关于如何在他的 Silverlight.FX 库中使用该模式的帖子。在这里查看:http: //www.nikhilk.net/ViewModel-Pattern-DLR.aspx

于 2009-01-12T05:50:53.577 回答
1

还有:

Silverlight MVVM:一个(过度)简化的解释

于 2010-04-30T20:35:54.217 回答
1

我最近经历了很多,其中两个突出的是:

丹·瓦林 (LIDNUG):

http://www.lidnug.org/Archives.aspx

约翰爸爸的(PDC 2010):

http://player.microsoftpdc.com/Session/76864d75-b4da-4858-aac7-786c5f28e344

于 2010-09-22T07:39:30.953 回答
1

Scott Hanselman 在欧洲的 MVC 演讲中给出了对 ViewModel 的最佳解释。

单线响应是——它是一个模型(类),创建的唯一目的是发送特定视图所需的所有必要数据,以及在双向绑定的情况下从视图接收修改后的数据。

于 2011-04-17T18:36:36.327 回答
0

看看我关于 Silverlight 中真实 MVVM 的文章。虽然它不适合新手,并且主要针对从事现实生活项目的专家开发人员。

http://alexburtsev.wordpress.com/2011/03/05/mvvm-pattern-in-silverlight-and-wpf/

于 2011-03-05T18:51:58.127 回答