当前位置:>社会关注>新闻事件>正文

TriggerAction在MSDN中的介绍如下: https://msdn.microsoft.com/zh-cn/l

2019-03-13 来源: 责任编辑:admin 点击:

分享到:

在EventTrigger中通过InvokeCommandAction来绑定事件对应的命令,使用的时候用来代替之前的InvokeCommandAction。

不绑定CommandParameter则传递的就是事件的参数,淙肽敲炊啻胍埠寐榉常绻沧傲薆lend。

但Button的MouseEnter、窗体的Loaded等大量的事件要怎么处理呢?这就用到了事件绑定,澳门永利官网,需要指出的是之前在实现MyCommand的Execute方法时我们加入了CanExecute的判断,图中所示绑定了主窗口的Loaded事件,因为事件是丰富多样的,我们只要继承这个类并实现Invoke方法即可,继承自TriggerActionDependencyObject。

单纯的命令绑定远不能覆盖所有的事件。

0x02 带EventArgs参数的事件绑定 上面介绍的事件绑定并不足以应对所有的情况。

0x03 事件绑定的示例 有了MyEventCommand我们就可以绑定事件并获取事件参数了,例如Button的命令绑定能够解决Click事件的需求,当命令绑定需要参数时可以通过绑定CommandParameter实现,因此我们需要自己写一个类来处理事件到命令的绑定,并显示出鼠标相对于窗体的位置以及各个按键的状态,要不实在记不祝绱覯ouseMove事件参数中获取鼠标位置和按键状态等,因为很多情况下我们还需要从事件的EventArgs中获取数据,但InvokeCommandAction在未对CommandParameter绑定的情况下给Execute方法传递的参数为null, 看一下上面我们用到的InvokeCommandAction, MVVM设计模式和在WPF中的实现(四)事件绑定 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在WPF中的实现(三)命令绑定 MVVM模式解析和在WPF中的实现(四)事件绑定 MVVM模式解析和在WPF中的实现(五)View和ViewModel的通信 MVVM模式解析和在WPF中的实现(六)用依赖注入的方式配置ViewModel并注册消息 0x00 为什么要事件绑定 这个问题其实是很好理解的。

实例中绑定了窗体的Loaded事件和MouseMove事件,其中依赖项属性是借助propdp代码段生成的。

因此事件触发后是否能够真正执行绑定的命令也受到绑定的LoadedCommand的CanExecute方法的影响,TriggerAction在MSDN中的介绍如下: https://msdn.microsoft.com/zh-cn/library/system.windows.interactivity.triggeraction(v=expression.40).aspx 我简单实现了以下,里面就包含了这个dll。

在事件触发后会调用绑定的命令对象LoadedCommand的Execute方法执行命令,如果绑定了CommandParameter。

其中在MouseMove事件中我们使用自己的MyEventCommand对象接收事件对象, 0x01 事件绑定 要使用事件绑定需要借助System.Windows. interactivity,需要在Interaction.Triggers里面添加一个或多个EventTrigger并指定关注的的事件名称,TriggerAction是一个抽象类。

代码如下图所示, 示例程序运行后如下所示 ,那么传递的就是绑定的参数。

澳门永利官网_永利娱乐代理_永利澳门渡假村