MVVM的再次理解

MVVM的理解

 

 

MVVM: Model、View、ViewModel

 

我要着重介绍的是ViewModel, 从字面意思就能看出ViewModel是View层的Model,也就是说ViewModel就是View的逻辑层。 ViewModel就是为了存储View的相关状态、行为,而不仅仅是View绑定的一些字段。

 

举个例子:比如界面当前的编辑状态、选择状态等等状态都是ViewModel存储的。

再举个例子:当View收到用户的输入时,可以通过Command等来调用ViewModel的处理, ViewModel继续调用Model层的增删改或者通过Event通知别的ViewModel处理。

 

也可以认为ViewModel是Model的一种特殊例子。 好多Model层的数据并不能直接呈现给某个View,因此需要ViewModel做包装和转换。换句话说, 传统的DTO(Data Transfer Object)应该定义在ViewModel层来转换Model的某些数据。

 

总结下:View通过DataContext可以知道ViewModel, ViewModel不知道View!, ViewModel不应该对View有引用关系。当ViewModel对View的状态和行为都进行了存储时, 就能完全脱离View而存在。

 

 

和MVC的对比:

MVC一般都是Controller先接受到用户输入, 然后Controller来创建View, 而且Controller创建完View后就不关心View了。下次用户的输入又再次先进入Controller来处理。

MVVM是View先接受到用户输入, 然后View通知ViewModel;

 

 

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值