Prism中Interaction机制探究及改进.docVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Prism中Interaction机制探究及改进

Prism中Interaction机制探究及改进摘要:微软的Prism开源框架,非常适合作为复杂界面程序的框架库。该文对Prism库中的Interaction机制及源码进行了分析,并结合项目实际情况进行了改进,大大简化了其实现过程。 关键词:Prism;MVVM 中图分类号: TP311文献标识码:A文章编号:1009-3044(2012)21-5110-03 MVVM是当前最流行的界面开发模式,尤其在它配合WPF后,功能更强大。但是,由于MVVM是在WPF出现后才发明的设计模式,WPF对它的支持不够好。所以,使用MVVM模式开发项目,在界面交互这些以往很简单的问题上,往往需要比较复杂的代码。Prism库提供了很多的方法来支持MVVM模式。其中的Interaction机制能够更简便的处理界面交互问题。本人通过Interaction机制在项目中的实际应用,简化了它的使用方式。 1 Prism和MVVM介绍 Prism开源框架是由微软Patterns Practices团队所开发,目的在于帮助开发人员构建松散耦合的、更灵活、更易于维护并且更易于测试的WPF应用或Silverlight应用以及Windows Phone 7应用。使用Prism可以使程序开发更趋于模块化,整个项目将由多个离散的、松耦合的模块组成,而各个模块又可以又不同的开发者或团队进行开发、测试和部署。 MVVM模式:MVVM模式是专为WPF打造的用于分离界面和程序逻辑的开发模式。它是MVC的变种。MVC是最早的为大家所熟知的开发界面程序的模式。但是它并不能完全干净的分离逻辑和界面代码。MVVM借助于WPF的binding功能可以满足这个需求。MVVM是Model-View-ViewModel的简写。它把程序分为三层:界面呈现(view),界面逻辑(ViewModel),业务逻辑和数据(Model)。ViewModel用于和View中的控件元素绑定,响应命令及事件处理。 2 MVVM模式中如何实现界面交互 通常一个界面程序在响应事件或执行命令前会与用户有简单的交互,像是notification或confirmation messagebox。但是在MV VM模式中,这个交互是令人头痛的。如果你用普通的messagebox,它将会破坏MVVM的规则(在viewmodel中不应该直接引用控件,这违背了界面和业务代码分离的原则)。MVVM模式中,一般有两种方式来实现这种交互: 方式1.创建一个Service来显示交互的控件,viewmodel能够调用这个Service。这样防止了View和ViewModel的直接引用。 方式2. ViewModel触发一个事件,View定制这个事件,来显示交互的界面。这种方式很好的隔离了界面和逻辑代码。但是可能创建很多事件,杂乱的放在VIewModel和View两侧,不好管理。 3 Prism库的Interaction机制 Prism提供了一个Interaction机制实现了这两种方式。 第一种方式很简单,Prism提供了InteractionService类。用户通过Service直接调用交互控件。 第二种方式在View中将一个在ViewModel中声明的Interaction Request Object和一个Behavior绑定。ViewModel触发这个Inter action Request,相应的行为将被执行。Interaction Request Object封装了具体的交互请求,响应函数,并且通过事件与View通信。View订阅这个事件,并且创建一个Behavior(将被绑定到ViewModel提供的Interaction Request Object)。Prism库提供了IInteraction Request接口和InteractionRequest类。ViewModel将定义一个InteractionRequest对象,当要触发交互行为时调用Raise函数,并指定参数:类型T的上下文对象和回调函数(交互完成后被调用)。这个上下文对象允许ViewModel传递数据和状态给View。并且在交互完成后,ViewModel能得到变化后的数据和状态。 Prism提供了预定义的上下文对象Notification和Confirmation。Notification用于显示提示信息,只有Title和Content属性。Confirmation继承于Notification,增加一个属性Confirmed。它用于实现MessageBox类型的交互,用于得到用户的Yes,No的响应。 下面是InteractionRequest在Viewmodel中的示例代码: publ

文档评论(0)

linsspace + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档