我完全得到了所有这些共同使用的比特 . 我想找到一个我可以解决这个模式的好例子 . 小规模的东西,就像Jason Dolinger在他的视频中所做的那样,但是我想要一些我可以以较慢的速度自己完成的事情 .
在此先感谢您的帮助 .
Nikhil Kothari有一篇关于如何在他的Silverlight.FX库中使用该模式的帖子 . 在这里查看:http://www.nikhilk.net/ViewModel-Pattern-DLR.aspx
还有:
Silverlight MVVM: An (Overly) Simplified Explanation
我最近经历了很多,突出的两个是:
Dan Wahlin(LIDNUG):
http://www.lidnug.org/Archives.aspx
John Papa(PDC 2010):
http://player.microsoftpdc.com/Session/76864d75-b4da-4858-aac7-786c5f28e344
对于ViewModel的最佳解释是由Scott Hanselman在欧洲的MVC演讲中给出的 .
单线响应是 - 它是一个模型(类),其创建的唯一目的是发送特定View所需的所有必要数据,以及在双向绑定的情况下从View接收修改数据 .
看看我在Silverlight中关于真实MVVM的文章 . 虽然它不适合新手,并且主要针对从事现实生活项目的专业开发人员 .
http://alexburtsev.wordpress.com/2011/03/05/mvvm-pattern-in-silverlight-and-wpf/
基本上,ViewModel是模型的包装器 . 现在这可能还不是很有用:-)把模型想象成你的应用程序使用的数据,比如一个人 . 现在一个人有一个生日,你可能想要一个表格来输入这个人的生日 . 假设我们只是使用一个简单的TextBox,日期会显示01-02-2009 12:00:00 AM之类的内容 . 对于初学者我们不希望时间部分,我们也可能不会对01-02-2009部分感到高兴,因为这取决于您的语言环境设置 .
所以这里的ViewModel来了 . 它包装Person类并将日期暴露为三个整数值,年,月和日 . 在属性集中,它尝试从不同的值构建日期并显示可能发生的任何错误 .
所以简单地说,ViewModel是一个专门针对特定视图(显示)的Model包装器 . 它同时消除了大多数IValueConvertors .
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模式 .
http://compositewpf.codeplex.com/releases
这里还有一个要添加到列表中:Tony Sneed的简单MVVM工具包(真的是你的):http://simplemvvmtoolkit.codeplex.com .
该工具包由辅助类,Visual Studio项模板和代码片段组成 . 除了实际的工具包之外,还有一个示例应用程序,其中包含有关如何使用MVVM模式构建基本Silverlight应用程序的分步说明 .
8 回答
Nikhil Kothari有一篇关于如何在他的Silverlight.FX库中使用该模式的帖子 . 在这里查看:http://www.nikhilk.net/ViewModel-Pattern-DLR.aspx
还有:
Silverlight MVVM: An (Overly) Simplified Explanation
我最近经历了很多,突出的两个是:
Dan Wahlin(LIDNUG):
http://www.lidnug.org/Archives.aspx
John Papa(PDC 2010):
http://player.microsoftpdc.com/Session/76864d75-b4da-4858-aac7-786c5f28e344
对于ViewModel的最佳解释是由Scott Hanselman在欧洲的MVC演讲中给出的 .
单线响应是 - 它是一个模型(类),其创建的唯一目的是发送特定View所需的所有必要数据,以及在双向绑定的情况下从View接收修改数据 .
看看我在Silverlight中关于真实MVVM的文章 . 虽然它不适合新手,并且主要针对从事现实生活项目的专业开发人员 .
http://alexburtsev.wordpress.com/2011/03/05/mvvm-pattern-in-silverlight-and-wpf/
基本上,ViewModel是模型的包装器 . 现在这可能还不是很有用:-)把模型想象成你的应用程序使用的数据,比如一个人 . 现在一个人有一个生日,你可能想要一个表格来输入这个人的生日 . 假设我们只是使用一个简单的TextBox,日期会显示01-02-2009 12:00:00 AM之类的内容 . 对于初学者我们不希望时间部分,我们也可能不会对01-02-2009部分感到高兴,因为这取决于您的语言环境设置 .
所以这里的ViewModel来了 . 它包装Person类并将日期暴露为三个整数值,年,月和日 . 在属性集中,它尝试从不同的值构建日期并显示可能发生的任何错误 .
所以简单地说,ViewModel是一个专门针对特定视图(显示)的Model包装器 . 它同时消除了大多数IValueConvertors .
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模式 .
http://compositewpf.codeplex.com/releases
这里还有一个要添加到列表中:Tony Sneed的简单MVVM工具包(真的是你的):http://simplemvvmtoolkit.codeplex.com .
该工具包由辅助类,Visual Studio项模板和代码片段组成 . 除了实际的工具包之外,还有一个示例应用程序,其中包含有关如何使用MVVM模式构建基本Silverlight应用程序的分步说明 .