好的Silverlight-MVVM实践例子

我已经阅读了一些关于Model-View-ViewModel模式的好文章,我的团队打算在我们的应用程序的最新版本中实现这个模式。 我还没有完全掌握所有的工作。 我想find一个很好的例子,我可以通过这种模式。 一些小规模的事情,就像Jason Dolinger在他的video中所做的一样,但是我想要一些能够以更慢的速度独自完成的事情。

在此先感谢您的帮助。

基本上一个ViewModel是一个模型的包装。 现在,这可能不是很有用:-)认为模型是你的应用程序的数据,比如说一个人。 现在一个人有一个生日,你可能想要一张表格来input这个人的生日。 假设我们只是使用一个简单的文本框,date显示类似01-02-2009 12:00:00 AM。 对于初学者,我们不想要时间部分,我们也可能不会为01-02-2009部分感到高兴,因为这取决于您的区域设置。

所以这里的ViewModel来即时通讯。 它包装了Person类,并将date显示为三个整数值,年,月和日。 在属性集中,它会尝试从不同的值生成date,并显示可能发生的任何错误。

所以简单地说一个ViewModel是一个专门针对特定视图(显示)的模型包装器。 它同时消除了大部分IValueConvertors。

约什·史密斯在这里有一个很好的解释: 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现在包含用于创buildMVVM应用程序的文档。 这是针对使用棱镜库,但概念工作的MVVM模式。

http://compositewpf.codeplex.com/releases

还有一个要添加到列表中:Tony Sneed的简单MVVM工具包(您真正的): http : //simplemvvmtoolkit.codeplex.com 。

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

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

还有:

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

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

丹·华林(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/