利刃 MVVMLight 1:MVVMLight介绍以及在项目中的使用
生活随笔
收集整理的這篇文章主要介紹了
利刃 MVVMLight 1:MVVMLight介绍以及在项目中的使用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、MVVM 和 MVVMLight介紹 MVVM是Model-View-ViewModel的簡寫。類似于目前比較流行的MVC、MVP設計模式,主要目的是為了分離視圖(View)和模型(Model)的耦合。 它是一種極度優秀的設計模式,但并非框架級別的東西,由MVP(Model-View-Presenter)模式與WPF結合的應用方式時發展演變過來的一種新型架構。 立足于原有MVP框架并且把WPF的新特性糅合進去,以應對PC端開發日益復雜的需求變化。 結構如圖所示: 相對于之前把邏輯結構寫在Code Behind 里面的方式,MVVM幾乎完全解耦了視圖和邏輯業務的關系,通過數據綁定和命令來處理UI屬性 及事件驅動。同理,ViewModel的視圖交互業務邏輯處理導致的屬性變更也會通知到View前端,讓View前端實時更新。Model中存放數據模型和數據邏輯、業務邏輯。 其實我個人認為,數據和業務交互這一層還是應該另外獨立,Model中完全就是實體模型,這樣更清晰。 這種類型的雙向綁定非常優秀,View的變動,會自動反應到ViewModel上,反之亦然。目前JS前端框架AngularJS也是采用這種設計模式。 MVVM模式和MVC模式一樣,主要目的是分離視圖(View)和模型(Model),有幾大優點 1. 低耦合:視圖(View)可以獨立于Model變化和修改,一個ViewModel可以綁定到不同的View上,當View變化的時候Model可以不變,當Model變化的時候View也可以不變。 2. 可重用性:可以把一些視圖邏輯放在一個ViewModel里面,讓很多View重用這段視圖邏輯。 3. 獨立開發:開發人員可以專注于業務邏輯和數據的開發(ViewModel),設計人員可以專注于頁面設計,使用Expression Blend可以很容易設計界面并生成xml代碼。 4. 可測試:界面素來是比較難于測試的,而現在測試可以針對ViewModel來寫。 希望對MVVM有更進一步了解的同學可以看看這篇文章:https://www.codeproject.com/kb/wpf/wpfmvvmquickstart.aspx, 作者從MVVM的模式介紹到數據綁定、消息通知、命令等幾個主要方面都有詳細的說明。 如果你目前正在進行微軟的 WPF 、Windows Phone、Windows 8、SilverLight相關項目的開發,我先很有必要了解一下MVVM Light框架。 它輕量(相對于Prism),專注(僅負責MVVM架構模式的實現,沒有其他多余的組件),高效(使用簡易,省時減力),能夠幫助你更好的開發你的應用。 MVVMLight的作者Laurent Bugnion 是個微軟MVP,這個是MVVMLight的官網:http://www.mvvmlight.net/,上面有詳細的介紹和視頻文檔, 同時作者還將代碼開源到Codeplex上面:http://mvvmlight.codeplex.com/,有興趣的同學可以下載來了解下。 有趣的是,MVVMLight的產品Logo是一根羽毛,寓意了我們上面提到的優點:輕量、專業、高效,不知道作者是不是這個意思。 二、如何在你的WPF應用中使用MVMLight 主要使用方式有兩種; 一種是去官網上下載MVVMLight Toolkit,安裝之后,VS模板中會出現MvvmLight項目模板,你可以直接使用該項目模板來創建項目了。 里面會包含默認的ViewModelLocator和MainViewModel,MainViewModel就是你Main視圖的ViewModel了,而ViewModelLocator是一個全局的ViewModel加載注冊器,這個第二篇會詳細說到。 另一種方式就是去NuGet上安裝,這無疑是最便捷的事了。在NuGet 工具箱上搜索 MVVM Light,可以看到兩個項目,一個是MVVM Light , 一個是 MVVM Light libraries only。 當前版本是5.3,說明MVVM Light的更新速度還是挺快的,Prerelease中還有 V5.4 的 ALAPHA 版本。 Nuget上這兩個項目的區別就是MVVM Light除了必要的GalaSoft 組件之外,還會額外添加相關分層文件目錄形成簡單的MVVMLight成型框架。 如圖它會幫你生成ViewModel文件夾,里面包含MainViewModel和ViewModelLocator文件。 至此,一個基于MVVMLight的WPF項目框架基本搭建完成了,下面一篇我們詳細說下框架的結構。 轉載請標明出處,謝謝?
轉載于:https://www.cnblogs.com/wzh2010/p/6285954.html
總結
以上是生活随笔為你收集整理的利刃 MVVMLight 1:MVVMLight介绍以及在项目中的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JMS ActiveMQ案例
- 下一篇: unity 公用的方法库