MVVM的简单认识命令属性

MVVM就是模型-视图-视图模型(Model­View­ViewModel)的简单缩写。MVVM是将页面和业务逻辑代码分离。
Model:数据访问层。View:界面层。ViewModel:是View的抽象,将View的Command(需要绑定的命令,个人感觉跟MVC中的点击事件有点相似)传递到Model。
比如:在MVC里面button里面是放click点击事件的,而在MVVM中是用命令属性进行数据绑定的。
在这里插入图片描述
在这里插入图片描述

什么是命令绑定。一般我们在按钮绑定的时候都是用Command、Bingding绑定后面就是自己写的一个命令,但是并不是所有的控件都会有Command命令的,只有button里面有Command命令属性。就像是表格数据中选中行事件,如果你直接在标签里面写Command命令属性它是敲不出来的,那对于这一类没有Command命令属性呢,那就需命令转换,需要用EventTrigger通过事件转换成触发器,既然没有Command命令的话那就通过命令转换成触发器,触发器里面有InvokeCommandAction方法,你们就可以使用触发器代替我们的事件,而Interaction它可以绑定任意事件。就比如我的是Window 绑定的就是Loaded事件:
在这里插入图片描述

但是使用它(上面的方法)要使用一个命令空间,要去引用System.Windows.Interactivity的命令空间
在这里插入图片描述
在这里插入图片描述

只要不是button按钮事件的,其他的都要用事件转换成命令的格式
它的原理就是通过事件转换成触发器,调用触发器里面的命令方法这样子就可以调用到Command事件。(Command命令是写在ViewModel里面的在xaml里面直接调用)。
注意:一个页面对应一个ViewModel。每个ViewModel都是一个类。如何在页面层调用ViewModel层呢?有两种方式:一种是可以在类页面里面声明一下DataContext数据来源,直接用DataContext绑定数据来源,数据来源于ViewModel,所以要引用ViewModel层。

在这里插入图片描述

引用就是将它实例化。
还有一种就是在xaml里面引用,在xaml里面引用先要引用ViewsModel层,如下所示:
在这里插入图片描述

如果在xaml里面写引用ViewModel层,在xaml里面的事件可以直接转到自己的定义。但是如果你是使用第一个方法的就转不到定义。个人喜欢第一种方法,一句代码就搞定了,方便。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值