在MVVM的架構下,通常為了將事件及邏輯從View的code behind(.cs檔)中搬離,會使用到Command,不過Command的建置作業比傳統的事件較為麻煩,在參考Blend 的WPF資料繫結應用程式專案及Google之後,發現不需使用Command而且還能跟原本的事件相容,並且搬移到ViewModel中!

 

  2

(1) 在Xaml中, ListView新增SelectionChanged事件

 

 

2.5

(2) 在Code Behind中, 將剛新增SelectionChanged事件剪下

 

x1  

(3) 貼到ViewModel後,將private改成public讓View能夠存取

 

1

(4) 在ListView中新增Interaction EventTrigger,EventName為原本引發事件的名稱,MethodName為ViewModel中的方法名稱

 

x2

這時下中斷點就能在ViewModel中看到原本熟悉的事件及相關引數,並且能夠直接存取ViewModel中的資源。如果不想建置Command這不失為一個好方法

 

PS.需先載入兩個參考及Xaml的namespace

x3

 

x4

 

x5

 

參考資料:

https://stackoverflow.com/questions/10680222/how-to-pass-a-event-argument-as-a-parameter-in-interaction-trigger-when-using-mv/16985762#16985762

http://www.cnblogs.com/xiaominblog/archive/2010/09/23/1833418.html

全站熱搜

小賢 發表在 痞客邦 留言(0) 人氣()