<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      MVVM設計模式和WPF中的實現(四)事件綁定

      MVVM設計模式和在WPF中的實現(四)

      事件綁定

      系列目錄:

      MVVM模式解析和在WPF中的實現(一)MVVM模式簡介

      MVVM模式解析和在WPF中的實現(二)數據綁定

      MVVM模式解析和在WPF中的實現(三)命令綁定

      MVVM模式解析和在WPF中的實現(四)事件綁定

      MVVM模式解析和在WPF中的實現(五)View和ViewModel的通信 

      MVVM模式解析和在WPF中的實現(六)用依賴注入的方式配置ViewModel并注冊消息

      0x00 為什么要事件綁定

      這個問題其實是很好理解的,因為事件是豐富多樣的,單純的命令綁定遠不能覆蓋所有的事件。例如Button的命令綁定能夠解決Click事件的需求,但Button的MouseEnter、窗體的Loaded等大量的事件要怎么處理呢?這就用到了事件綁定。

      0x01 事件綁定

      要使用事件綁定需要借助System.Windows. interactivity,如果安裝了Blend,里面就包含了這個dll。需要在Interaction.Triggers里面添加一個或多個EventTrigger并指定關注的的事件名稱,在EventTrigger中通過InvokeCommandAction來綁定事件對應的命令。圖中所示綁定了主窗口的Loaded事件,在事件觸發后會調用綁定的命令對象LoadedCommand的Execute方法執行命令,當命令綁定需要參數時可以通過綁定CommandParameter實現。需要指出的是之前在實現MyCommand的Execute方法時我們加入了CanExecute的判斷,因此事件觸發后是否能夠真正執行綁定的命令也受到綁定的LoadedCommand的CanExecute方法的影響。

       

      0x02 帶EventArgs參數的事件綁定

      上面介紹的事件綁定并不足以應對所有的情況,因為很多情況下我們還需要從事件的EventArgs中獲取數據,例如從MouseMove事件參數中獲取鼠標位置和按鍵狀態等。但InvokeCommandAction在未對CommandParameter綁定的情況下給Execute方法傳遞的參數為null。因此我們需要自己寫一個類來處理事件到命令的綁定。

       

      看一下上面我們用到的InvokeCommandAction,繼承自TriggerAction<DependencyObject>,TriggerAction是一個抽象類,我們只要繼承這個類并實現Invoke方法即可。TriggerAction在MSDN中的介紹如下:

      https://msdn.microsoft.com/zh-cn/library/system.windows.interactivity.triggeraction(v=expression.40).aspx

      我簡單實現了以下,代碼如下圖所示,其中依賴項屬性是借助propdp代碼段生成的,要不實在記不住,輸入那么多代碼也好麻煩。使用的時候用來代替之前的InvokeCommandAction,不綁定CommandParameter則傳遞的就是事件的參數。如果綁定了CommandParameter,那么傳遞的就是綁定的參數。

      0x03 事件綁定的示例

      有了MyEventCommand我們就可以綁定事件并獲取事件參數了。實例中綁定了窗體的Loaded事件和MouseMove事件,其中在MouseMove事件中我們使用自己的MyEventCommand對象接收事件對象,并顯示出鼠標相對于窗體的位置以及各個按鍵的狀態。

       示例程序運行后如下所示

      0x04 相關下載

      https://github.com/durow/TestArea/tree/master/MVVMTest/EventBindingTest

       


      更多內容歡迎訪問我的博客:http://www.durow.vip

      posted @ 2015-10-08 13:58  durow  閱讀(34514)  評論(7)    收藏  舉報
      主站蜘蛛池模板: 少妇厨房愉情理9仑片视频| 色综合色综合久久综合频道88| 丁香花成人电影| 免费观看欧美猛交视频黑人| 国产L精品国产亚洲区在线观看| 四虎永久地址www成人| 成人午夜福利精品一区二区| 中国少妇无码专区| xxxx丰满少妇高潮| 亚洲首页一区任你躁xxxxx| 日韩一区二区三区一级片| 九九热在线视频观看这里只有精品| 91精品国产色综合久久不| caoporn成人免费公开| 成人亚洲性情网站www在线观看| 亚洲高请码在线精品av| 国产精品高清视亚洲中文| 国产成人a在线观看视频| 在线观看潮喷失禁大喷水无码| 国产在线视频不卡一区二区| 性人久久久久| 三人成全免费观看电视剧高清| 国产成人高清精品亚洲一区 | 亚洲第一福利网站在线观看 | 国产精品福利自产拍久久| 亚洲中文字幕第一页在线| 无码囯产精品一区二区免费| 亚洲人成网线在线播放VA| 久久男人av资源网站| 久久久久人妻一区精品| 国产成人a在线观看视频免费| 一区二区三区四区亚洲综合 | 亚洲香蕉伊综合在人在线| 日韩一区二区a片免费观看| 老色99久久九九爱精品| 国产在线观看网址不卡一区| 丰满无码人妻热妇无码区| 成人免费无码大片a毛片| 99久久久国产精品消防器材| 色综合色综合久久综合频道88 | 麻豆果冻国产剧情av在线播放|