mvvm是model-view-viewmodel的简写。类似于目前比较流行的mvc、mvp设计模式,主要目的是为了分离视图(view)和模型(model)的耦合。
它是一种极度优秀的设计模式,但并非框架级别的东西,由mvp(model-view-prenter)模式与wpf结合的应用方式时发展演变过来的一种新型架构。
立足于原有mvp框架并且把wpf的新特性糅合进去,以应对pc端开发日益复杂的需求变化。
结构如图所示:
相对于之前把逻辑结构写在code behind 里面的方式,mvvm几乎完全解耦了视图和逻辑业务的关系,通过数据绑定和命令来处理ui属性
及事件驱动。同理,viewmodel的视图交互业务逻辑处理导致的属性变更也会通知到view前端,让view前端实时更新。model中存放数据模型和数据逻辑、业务逻辑。
其实我个人认为,数据和业务交互这一层还是应该另外独立,model中完全就是实体模型,这样更清晰。
这种类型的双向绑定非常优秀,view的变动,会自动反应到viewmodel上,反之亦然。目前js前端框架angularjs也是采用这种设计模式。
mvvm模式和mvc模式一样,主要目的是分离视图(view)和模型(model),有几大优点
空间个性签名1. 低耦合:视图(view)可以独立于model变化和修改,一个viewmodel可以绑定到不同的view上,当view变化的时候model可以不变,当model变化的时候view也可以不变。
2. 可重用性:可以把一些视图逻辑放在一个viewmod2020抗疫十大人物el里面,让很多view重用这段视图逻辑。
3. 独立开发:开发人员可以专注于业务逻辑和数据的开发(viewmodel),设计人员可以专注于页面设计,使用expression blend可以很容易设计界面并生成xml代码。
4. 可测试:界面素来是比较难于测试的,而现在测试可以针对viewmodel来写。
希望对mvvm有更进一步了解的同学可以看看这篇文章:/d/file/titlepic/pp如果你目前正在进行微软的 wpf 、windows phone、windows 8、silverlight相关项目的开发,我先很有必要了解一下mvvm light框架。
它轻量(相对于prism),专注(仅负责mvvm架构模式的实现,没有其他多余的组件),高效(使用简易,省时减力),能够帮助你更好的开发你的应用。
mvv苹果手机有锁和无锁的区别mlight的作者laurent bugnion 是个微软mvp,这个是mvvmlight的官网:/d/file/titlepic/pp style="text-align:center">
主要使用方式有两种;
一种是去官网上下载mvvmlight toolkit,安装之后,vs模板中会出现mvvm续写小木偶的故事light项目模板,你可以直接使用该项目模板来创建项目了。
里面会包含默认的viewmodellocator和mainviewmodel,mainviewmodel就是你main视图的viewmodel了,而viewmodellocator是一个全局的viewmodel加载注册器,这个第二篇会详细说到。
另一种方式就是去nuget上安装,这无疑是最便捷的事了。在nuget 工具箱上搜索 mvvm light,可以看到两个项目,一个是mvvm light , 一个是 mvvm light libraries only。
当前版本是5.3,说明mvvm light的更新速度还是挺快的,prerelea中还有 v5.4 的 alapha 版本。
nuget上这两个项目的区别就是mvvm light除了必要的galasoft 组件之外,还会额外添加相关分层文件目录形成简单的mvvmlight成型框架。
如图它会帮你生成viewmodel文件夹,里面包含mainviewmodel和viewmodellocator文件。
至此,一个基于mvvmlight的wpf项目框架基本搭建完成了,下面一篇我们详细说下框架的结构。
以上就是mvvm和mvvmlight介绍及在项目中的使用详解的详细内容,更多关于mvv雷锋的简笔画m和mvvmlight介绍及使用的资料请关注www.887551.com其它相关文章!
本文发布于:2023-04-04 21:11:04,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/ddeae8a2a69a557e2a32a9fdf3a26ffd.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:MVVM和MVVMLight框架介绍及在项目中的使用详解.doc
本文 PDF 下载地址:MVVM和MVVMLight框架介绍及在项目中的使用详解.pdf
留言与评论(共有 0 条评论) |