我有三年的c#经验。我想学习一些WPF和MVVM模式。 这个网站上的文章有很多链接,但我有点不知所措。 对于一个忘记者来说,一个合理的方法是忘记mvvm一段时间,然后快速学习一点WPF,然后再回到MVVM?
我今天在工作中有Application=Code+Markup - Charles Petzold,它似乎没有提到MVVM(至少不在索引中)。我对此感到非常惊讶,因为我认为MVVM应该是WPF的“通用语言”?
此外,我刚开始在一家新公司工作,他们正在使用MVM和WinForms,有没有人遇到过这个?
有人可以推荐一本能教我WPF和MVVM的书吗?
答案 0 :(得分:27)
这取决于您的经验。
我个人认为这是MVVM讨论中缺乏的一个领域,这就是我在MVVM and WPF from a Windows Forms developer perspective.
编写系列文章的原因。如果不学习MVVM,我不会尝试学习WPF。你最终会试图“忘掉”许多方面,因为WPF完全没有意义,直到你理解了整个架构中普遍存在的表示和逻辑的分离。 MVVM实际上只是将这种相同的分离扩展到应用程序空间。
对于“Windows窗体中的MVVM” - 很多人都试图这样做,但它并不是真正的MVVM。为了执行“MVVM”,您需要访问比Windows Forms提供的更丰富的数据绑定形式。 “Windows窗体中的MVVM”通常只是具有不同名称的Model-View-Presenter(我猜想是MVVM的潮流),但与WPF中的MVVM并不完全相同。
答案 1 :(得分:13)
Jason Dolinger有一个关于这个主题的精彩视频。它将引导您完成从使用代码隐藏文件到完整MVVM模式(包括依赖注入和测试)的过程。
Bill Steele在WPF上做了16部分“Soup-to-Nuts”网络直播系列节目。 msevents网站上的链接已损坏。这是Google search找到它们。这将有助于WPF学习曲线。并且他在他的例子中没有使用任何MV *模式。
编辑:MSEvents链接现在正在运行,我将离开Google search作为备份。
Josh Smith在MSDN上也有一篇优秀文章WPF Apps With The Model-View-ViewModel Design Pattern。
羊群代码: Jeremy Miller,Ward Bell,Rob Eisenberg和Glenn Block的演讲模式
MIX10:
当然,Reed Copsey的MVVM articles也值得一读。
答案 2 :(得分:6)
有几次我被告知我的MIX10会话正在为初学者解释MVVM模式(即使某些部分实际上非常先进,所以如果你需要重新观看某些部分,不要担心)。
会话位于http://live.visitmix.com/MIX10/Sessions/EX14
对不起自我推销。
干杯, 劳伦
答案 3 :(得分:4)
关于MVVM的书籍不多,但有一本:Advanced MVVM
但是有很多在线资源,这是必须阅读的:WPF Apps With The Model-View-ViewModel Design Pattern
之后,我建议调查像
这样的框架答案 4 :(得分:1)
这是MVVM http://www.codeproject.com/Articles/819294/Learn-WPF-MVVM-step-by-step-Basics-to-Advance-Leve的教程,它从5个步骤的基本级到高级级。所以它就像从3层逐渐升级到完整的MVVM。
答案 5 :(得分:1)
要做大事(比如学习WPF + MVVM),最好以较小的步骤来完成任务。
我认为在这种情况下最好的方法是从学习Wpf的UI部分开始。学习XAML语法,布局系统,可用控件,忘记绑定以及如何将数据传递给控件。
一旦您了解了Wpf的UI基础知识,就可以转到MVVM了。了解绑定的工作原理和MVVM模式。
在这个网站上,你可以找到一个专注于实践的教程,但有可用的理论:
答案 6 :(得分:0)
试试这个网站。它在一个地方收集各种资源。 http://learnandmasterwpf.blogspot.com/
答案 7 :(得分:0)
我刚看完这本书。它并不是真正学习WPF,但是一旦你已经了解了一些WPF并想要提高对MVVM的理解,它就应该是有用的。
http://www.amazon.co.uk/Pro-WPF-Silverlight-MVVM-Model-View-ViewModel/dp/1430231629