在MVVM的架構下,通常為了將事件及邏輯從View的code behind(.cs檔)中搬離,會使用到Command,不過Command的建置作業比傳統的事件較為麻煩,在參考Blend 的WPF資料繫結應用程式專案及Google之後,發現不需使用Command而且還能跟原本的事件相容,並且搬移到ViewModel中!
(1) 在Xaml中, ListView新增SelectionChanged事件
(2) 在Code Behind中, 將剛新增SelectionChanged事件剪下
(3) 貼到ViewModel後,將private改成public讓View能夠存取
(4) 在ListView中新增Interaction EventTrigger,EventName為原本引發事件的名稱,MethodName為ViewModel中的方法名稱
這時下中斷點就能在ViewModel中看到原本熟悉的事件及相關引數,並且能夠直接存取ViewModel中的資源。如果不想建置Command這不失為一個好方法
PS.需先載入兩個參考及Xaml的namespace
參考資料:
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
留言列表