MVVM Light Toolkit是Silverlight開發中用到的最多的MVVM架構,雖然之前做了一些這方面的開發,但是一直都沒有很好的研究,今天就做一個系統的學習,記錄備查(主要因為本人E文太爛,看E文太廢勁了)。
MVVM Light Toolkit的最新訊息可以參考http://mvvmlight.codeplex.com/
1.下載安裝
基本要求就不多說了,可以參考:http://www.galasoft.ch/mvvm/installing/ “安裝的先決條件”部分。
如果之前安裝過其它版本,要先卸載掉,參考:http://www.galasoft.ch/mvvm/cleaning/
我安裝的是MVVM Light Toolkit V4 beta 1(:http://mvvmlight.codeplex.com/releases/view/73208),下載完成後進行安裝,除把安裝路徑改成合適的地方外,其它選項都是預設設定。過程
2.相關介紹
GalaSoft.MvvmLight 類庫
- ViewModelBase 類是ViewModels的基礎類,在開發中ViewModls類都要繼承自它。
- Messenger類 用於應用程式的通訊。接收者僅接受註冊過的訊息類型。此外,目標類型可以被指定,用Send<TMessgae,TTarget>(TMessage message)實現,在這種情況下如果接收者類型和目標參數類型匹配資訊被傳遞,message可以是任何對象,可以用特定的訊息類型或者建立自己的類型繼承自它們。
-
- MessageBase:訊息基類,是訊息發行者的任何資訊。
- GenericMessage<T>:一個簡單的泛型訊息。
- NotificationMessage: 用於發送一個string類型通知給接受者。
- NotificationMessage<T>:NotificationMessage泛型方工。
- NotificationMessage:向接受者發送一個通知,允許接受者向寄件者回傳訊息。
- NotificationMessageAction<T>:NotificationMessage的泛型方式。
- DialogMessage:寄件者(通常是View)顯示對話,並且傳遞調用者得回傳結果(用於回調),接受者可以選擇怎樣顯示對話方塊,可以使是標準的MessageBox也可也是自訂快顯視窗。
- PropertyChangedMessage<T>:用於廣播一個屬性的改變在寄件者裡,和PropertyChanged事件有完全箱體內各的目的,但是是一種弱連絡方式。
- Command 類在你的應用程式中是最佳的使用方式,可以使用RelayCommand<T>和RelayCommand,很方便的綁定一個執行命令。
GalaSoft.MvvmLight.Extras 類庫可選類
EventToCommand behavior,允許你綁定任何事件在UI的元素上,必須是一個ICommand。
DispatcherHelper類,一個輕型類,可以用於多線程編程(非同步處理)。
3.模版
安裝完MVVM light Toolkit後,在建立項目時就會出現各種MVVM的項目模版可選(取決於你是否安裝過的平台),
在建立項時也會有各種模板可用,
不過需要注意的是,如果建立一個MVVMViewModel(WP7,其它類型沒有測試)時需要手工去ViewModelLocator.cs中去註冊。
4.程式碼片段
可以使開發人員更快的進行開發,不過只在vs中支援。blend中不可用。
現在總算有了一個初步的瞭解,新的功能以後慢慢發現。