MVVM模式构建WPF

MVVM模式构建WPF

ID:37855694

大小:193.97 KB

页数:21页

时间:2019-06-01

MVVM模式构建WPF_第1页
MVVM模式构建WPF_第2页
MVVM模式构建WPF_第3页
MVVM模式构建WPF_第4页
MVVM模式构建WPF_第5页
资源描述:

《MVVM模式构建WPF》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、使用MVVM设计模式构建WPF应用程序本文是翻译大牛JoshSmith的文章,WPFAppsWithTheModel-View-ViewModelDesignPattern,译者水平有限,如有什么问题请看原文,或者与译者讨论(非常乐意与你讨论)。本文讨论的内容:WPF与设计模式MVP模式对WPF来说为什么MVVM是更好的选择用MVVM构建WPF程序本文涉及的技术:WPF、数据绑定内容列表有序与混乱模型-视图-视图模型的演变为什么WPF开发者喜欢MVVM演示程序中继命令逻辑ViewModel类层级结构ViewModelBase类Com

2、mandViewModel类MainWindowViewModel类View对应ViewModel数据模型和Repository新增客户数据表单所有客户视图总结开发UI,对一个专业软件并不容易。它需要未知数据、交互式设计,可视化设计、联通性,多线程、国际化、验证、单元测试以及其他的一些东西才能完成。考虑到UI要展示开发的系统并且必须满足用户对系统风格不可预知的变更,因此它是很多应用程序最脆弱的地方。有很多的设计模式可以帮助解决UI不断变更这头难缠的野兽,但是恰当的分离和描述多个关注点可能很困难。模式越复杂,之后用到的捷径越可能破坏之

3、前正确的努力。这并不总是设计模式的错。有时使用要写很多的代码复杂设计模式,这是因为我们使用的UI平台并不适合简单是设计模式。UI平台需要做的是很容易使用简单的,久经考验的,开发者认识的设计模式构建UI。庆幸的是,WPF就是这样一个平台。随着是使用WPF开发的比例不断升高,WPF社区发展了自己的模式与实践生态圈子。在本文,我将讨论一些设计与实现客户端应用程序的WPF最佳实践。利用WPF和MVVM设计模式衔接的一些核心功能,我将通过一个例子介绍,用“正确”的方式构建一个WPF程序是多么的简单。datatemplates,commands

4、,databinding,theresourcesystem以及MVVM模式怎么揉合到一起创建一个简单的、可测试的、健壮的框架,并且任何WPF程序都能使用,到文章最后,这一切都很清晰明了。文中的例程可以作为现实中一个WPF应用程序的模版,并且使用MVVM设计模式作为其核心架构。例程解决方案中的单元测试部分,展示了测试ViewModel类的功能是很容易的。在深入本文之前,我们首先看一下我们要使用像MVVM这样的设计模式。有序与混乱没有必要在一个”Hello,World!”的程序中使用设计模式。任何一个合格的开发者看一眼就指导那几行代码

5、是干什么的。然而随着程序功能点的增加,随之代码的数量以及移动部件也会增多。最终系统的复杂度以及不断出现问题,促使开发者组织他们的代码,以便它们更容易理解,讨论、扩展以及维护。我们通过给代码中某些实体命以众所周知的名字,减少复杂系统认知误区。我们给函数块命名主要依据系统中的功能角色。开发者有意识的根据设计模式组织他们的代码,而不是根据设计模式自动去组织。无论哪一种,都没有什么问题。但是在本文中,我说明在WPF程序中明确使用MVVM模式的好处。某些类的名称,包括MVVM模式中著名的术语,如果类是view的抽象类就以ViewModel结束

6、。这种方式有助于避免之前提到的认知误区。相反,你也可以让那种受控的误区存在,这正是大部分软件开发项目的自热状态。模型-视图-视图模型的演变自从人们开始构建UI时,就有很多流行的设计模式让UI构建更容易。比如,MVP模式在各种UI编程平台中都非常流行。MVP是MVC模式的一种变体,MVC模式已经流行了几十年了。以防你之前从没用过MVP模式,这里做一个简单的解释。你在屏幕上看到的是View,它显示的数据是Model,Presenter就是把两者联系起来。View依赖Presenter并通过Presenter展示Model数据,响应用户输

7、入,提供数据验证(或许委托给Model去完成)以及其他的一些任务。如果你想了解更过关于MVP模式,我建议你去读Jean-PaulBoodhoo的August2006DesignPatternscolumn。2004年晚些时候,MartinFowler发表了一篇叫PresentationModel(PM)的模式。PM模式和MVP类似,MVP是把一个View从行为和状态分离出来。PM中令人关注的部分是创建view的抽象,叫做PresentationModel。之后,View就仅仅是PresentationModel的展示了。在Fowle

8、r的论文中,他展示了PresentationModel经常更新View,以便两个彼此同步。同步逻辑组作为代码存在于PresentationModel类中。2005年,JohnGossman,目前是微软WPF和Silverlight架构

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。