【发布时间】:2010-09-29 15:10:08
【问题描述】:
我已经阅读了很多关于模型-视图-视图模型模式的好文章,我的团队打算在我们最新版本的应用中实现这种模式。我仍然没有完全了解所有这些可以一起完成这项工作的部分。我想找到一个可以解决的这种模式的好例子。小规模的事情,就像 Jason Dolinger 在他的视频 here 中所做的那样,但我想要一些我可以以较慢的速度自己完成的事情。
提前感谢您的帮助。
【问题讨论】:
标签: silverlight mvvm
我已经阅读了很多关于模型-视图-视图模型模式的好文章,我的团队打算在我们最新版本的应用中实现这种模式。我仍然没有完全了解所有这些可以一起完成这项工作的部分。我想找到一个可以解决的这种模式的好例子。小规模的事情,就像 Jason Dolinger 在他的视频 here 中所做的那样,但我想要一些我可以以较慢的速度自己完成的事情。
提前感谢您的帮助。
【问题讨论】:
标签: silverlight mvvm
基本上,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
【讨论】:
Prism 4.0 现在包含用于创建 MVVM 应用程序的文档。这是针对使用 Prism 库的,但这些概念通常适用于 MVVM 模式。
【讨论】:
这里还有一个要添加到列表中的内容:Tony Sneed 的 Simple MVVM Toolkit(您的真心):http://simplemvvmtoolkit.codeplex.com。
该工具包由帮助类、Visual Studio 项目模板和代码 sn-ps 组成。除了实际的工具包之外,还有一个示例应用程序,其中包含有关如何使用 MVVM 模式构建基本 Silverlight 应用程序的分步说明。
【讨论】:
Nikhil Kothari 有一篇关于如何在他的 Silverlight.FX 库中使用该模式的帖子。 在这里查看:http://www.nikhilk.net/ViewModel-Pattern-DLR.aspx
【讨论】:
我最近经历了很多,其中比较突出的是:
丹·华林 (LIDNUG):
http://www.lidnug.org/Archives.aspx
约翰爸爸(PDC 2010):
http://player.microsoftpdc.com/Session/76864d75-b4da-4858-aac7-786c5f28e344
【讨论】:
Scott Hanselman 在欧洲的 MVC 演讲中给出了对 ViewModel 的最佳解释。
单线响应是——它是一个模型(类),其创建的唯一目的是发送特定视图所需的所有必要数据,以及在以下情况下从视图接收修改后的数据——方式绑定。
【讨论】:
看看我关于 Silverlight 中真实 MVVM 的文章。虽然它不适合新手,并且主要针对从事现实生活项目的专家开发人员。
http://alexburtsev.wordpress.com/2011/03/05/mvvm-pattern-in-silverlight-and-wpf/
【讨论】: