編者語 : Windows 10 給開發者帶來了新的機遇,通過一次開發,一次編譯,一個執行文件可以運行在PC , IoT, Mobile,Xbox, HoloLens,SurfaceHub等不同的終端上。上週在直播活動中,爲大家帶來了一個開發的開篇介紹,從今天起會連載Windows 10 開發的相關文章。
MVVM Light是一個基於Model-View-ViewModel的輕量級框架,他可以爲WPF,Silverlight,Xamarin,Uinversal Windows Platform App提供一個MVVM的模式實現。Windows 10 對於支持Windows 8.x PCL 的庫都可以無縫地延續下來,所以MVVM Light也可以在UWP的開發中使用。
再談MVVM
MVVM 是一個設計模式,從傳統的MVC,MVP模式下演變過來。MVVM模式和MVC模式一樣,主要目的是分離視圖(View)和模型(Model),有幾大優點
MVVM Light 不是MVVM 模式下唯一的第三方框架,有Prism/ FreshMVVM 等類似的。但是它是比較成熟的一個。MVVM Light對ViewModel, Command,消息傳遞進行了封裝,方便開發人員調用,並整合了SimpleIoC的依賴注入方式。在MVVM Light中有幾個基類比較重要,我粗略介紹一下。
ViewModelBase : 你創建的ViewModel都基於這個類,它爲你提供了設計模式下的數據展現方式,方便在Blend下針對數據呈現
進行設計。
RelayCommand : 爲你的ViewModel提供了事件響應的方式。它基於ICommand。RelayCommand通過構造函數初始化Execute 和 CanExecute
方法。
NavigationService: 這是一個跳轉服務,對於頁面跳轉和返回起着重要作用。
Messenger : 頁面間傳遞消息和數據傳遞。
在Windows 10 中使用MVVM Light
1. 通過Nuget添加MVVM Light ,如圖通過Nuget就可以找到MVVM Light的庫,只要點擊Install就可以安裝了,它會把
MvvmLightLibs也安裝上
2. 安裝成功後,除了會爲MVVMLight添加必要的引用外,還創建了ViewModel文件夾,自帶了MainViewModel和ViewModelLocator兩個類。
ViewModelLocator主要爲項目的依賴注入相關類和實例化相關類。
3. 之後的事情是按照需要創建你的Model和相關的Service完成對應的數據邏輯操作。
4. 對於XAML的修改,你需要爲XAML添加如下語句 ,通過這個來綁定相關的ViewModel
<Page
x:Class="UWPDemo.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:UWPDemo"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
DataContext="{Binding Main, Source={StaticResource Locator}}">
5. 至於其他界面的操作就是按以往那樣即可,當然你可以針對不同的設備進行界面調整。
6. 最後就是運行了,雖然是一個簡單列表但是起碼跑起來了。
爽吧!一個好的架構都項目來說是一個非常好的保障,MVVMLight 就是你所需要的。我會不間斷地連載相關Windows 10結合MVVM Light開發的文章,希望大家喜歡。
點擊下載示例