当前位置:首页 > Windows程序 > 正文

因为Command在执行操作过程中操作数据时

2024-03-31 Windows程序

MVVM是Model、View、ViewModel的简写,这种模式的引入就是使用ViewModel来降低View和Model的耦合,说是降低View和Model的耦合。也可以说是是降低界面和逻辑的耦合,抱负情况下界面和逻辑是完全疏散的,片面变动界面时不需要对逻辑代码窜改,,同样的逻辑代码变动时也不需要变动界面。同一个ViewModel可以使用完全不用的View进行展示,同一个View也可以使用差此外ViewModel以供给差此外操纵。

技术分享图片

1.Model

Model就是一个class,是对现实中事物的抽象,开发过程中涉及到的事物都可以抽象为Model,例如客户,客户的姓名、编号、电话、住址等属性也对应了class中的Property,客户的下订单、付款等行为对应了class中的要领。

2. View

View很好理解,就是界面。

3. ViewModel

上面说过Model抽象,那么ViewModel就是对View的抽象。显示的数据对应着ViewMode中的Property,执行的命令对应着ViewModel中的Command。

WPF中MVVM的解耦方法

在WPF的MVVM模式中,View和ViewModel之间数据和命令的关联都是通过绑定实现的,绑定后View和ViewModel并不孕育产生直接的依赖。具体就是View中呈现数据变革时会测验考试改削绑定的方针。同样View执行命令时也会去寻找绑定的Command并执行。反过来,ViewModel在Property产生转变时会发个通知说“名字叫XXX的Property转变了,你们这些View中谁绑定了XXX也要随着变啊!”,至于有没有View收到是不是做出变革也不关心。ViewModel中的Command脱离View就更简单了,因为Command在执行操纵过程中操纵数据时,根柢不需要操纵View中的数据,只需要操纵ViewModel中的Property就可以了,Property的变革通过绑定就可以反应到View上。这样在测试Command时也不需要View的参预。这也是我在接触WPF初期时根柢理解不了的所谓数据驱动。

这样一来ViewMode可以在完全没有View的情况下测试,View也可以在完全没有ViewModel的情况下测试(固然只是测试界面结谈判动画等业务无关的内容)。

MVVM框架需要解决的问题

从图中可以看出如果要实现一套MVVM框架,需要解决的最根基的问题就是数据绑定和命令绑定。别的由于UI中会孕育产生大量的事件,因此还需要将事件绑定到MVVM中的命令上。后面的文章将依次测验考试解决这些问题。最后还是要说一下任何设计模式都是参考,都有使用场景,切忌生搬硬套。实际开发中应按照项目特点采纳适配性更强的模式。

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/35244.html

Jm-杰米博客Jamie
草根站长的技术交流乐园!IT不会不要紧快来好好学习吧!
  • 20786文章总数
  • 7494590访问次数
  • 建站天数
  • 友情链接