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

2022-01-10 12:43:44 字數 820 閱讀 2762

經過幾個晚上時間的奮鬥,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開發簡單,優雅了不少!

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

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

豆瓣電台wp7客戶端 mvvm重構記錄之使用mvvm light實現資料繫結

豆瓣電台wp7客戶端 mvvm重構記錄之使用mvvm light實現event繫結

豆瓣電台wp7客戶端 mvvm重構記錄之使用mvvm light的message實現導航

豆瓣同城的客戶端 豆鄰1 0

豆鄰是豆瓣同城的android客戶端。具有豆瓣同城的功能,同時可查詢周邊興趣點 豆瓣的同城好友 發布我說,繫結sina微博並把我說同步到sina微博。訪問豆瓣和sina微博的認證方式都採用oauth認證。目前作為1.0版本功能上還有非常多的不足,特別是介面上。程式是本人業餘時間完成的,難免會有bug...

win7 安裝 oracle 客戶端

當前任何版本的oracle客戶端在任何版本的windows7上都不能正常完成安裝。主要是因為oracle安裝的先決條件裡作業系統版本不符合,但是這個疑問可以修改refhost.xml處理,具體是在refhost.xml中新增 安裝目錄下搜尋refhost.xml,有幾個改幾個 即可,不須要新增x32...

CentOS7配置ISCSI客戶端

iscsi initiator 客戶端 一 安裝iscsiinitiator yum y install iscsi initiator utils 二 啟動iscsi服務 systemctl start iscsi 三 設定開機啟動服務 systemctl enable iscsi 四 配置isc...