豆瓣電台WP7客戶端 MVVM重構記錄之-總結


     經過幾個晚上時間的奮斗,dbfm7的MVVM改造之旅終於告一段落大笑。從對MVVM的無知到現在對它的半只半解,這個過程還是學到了很多。

     MVVM的目的在於使開發分離關注點,寫后台邏輯的就寫后台,設計UI的就設計UI。不過要達成這一點並不那么容易,比如導航,比如動畫(StoryBoard),這些在ViewModel中都不是那么容易控制的,或者說一旦在VM中控制,那么就破壞了MVVM的初衷。上面這兩個問題我都是使用MVVM Light的Message機制來處理的,雖然看起來解耦了,但是還是不夠徹底。特別是ViewModel通知View去操作StoryBoard這種情況,雖然從代碼層面來看分離了,但是沒有分離關注點,ViewModel 還是在關注View。我還沒想到更好的解決辦法,我是想,要是能做到某個綁定屬性(Image的Uri)發生變化的時候,View自動觸發一個動畫(右邊飛入),這樣就完美了。也許可行,哪位大俠指點下。

     現在的ViewModel比當初的CodeBehind,沒有了業務夾雜UI的操作,真是清爽的了很多。當然CodeBehind並不是一行代碼都沒有。CodeBehind本來就是View的一部分,有些在XAML里面不能定義的復制UI操作,完全可以放在這里。另外MVVM Light真的很好用,使你的MVVM開發簡單,優雅了不少!

最新代碼請到codeplex下載:http://dbfm7.codeplex.com/SourceControl/list/changesets

剛剛改完,還沒好好測試,bug在所難免,發現請告訴我。

以下是改造過程的記錄,希望對初學MVVM的同學幫助。眨眼

豆瓣電台WP7客戶端 MVVM重構記錄之使用MVVM Light實現數據綁定

豆瓣電台WP7客戶端 MVVM重構記錄之使用MVVM Light實現Event綁定

豆瓣電台WP7客戶端 MVVM重構記錄之使用MVVM Light的Message實現導航

豆瓣電台WP7客戶端 MVVM重構記錄之使用AppBarUtils使ApplicationBarIconButton支持綁定(包括IconUri)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM