1. 程式人生 > >WPF程式中使用MVVM模式

WPF程式中使用MVVM模式

        前兩週有個緊急專案,專案到我們手上時離最後交付日期只有三週,雖然功能很簡單就幾個頁面,但需要做的還是很多。於是臨時找了北京的同事幫忙做介面,我們這邊負責做後臺通訊和訊息分發。上週合併程式碼一看,發現介面程式碼有點亂,各種貼程式碼的痕跡,有很明顯的MVVM框架的樣子,但用的有些混亂,看他的程式碼自己也迷糊了一陣,因為MVVM只是瞭解點(我還以為是我理解錯了的,我們前幾個專案都是採用Winform的思維做的專案)。於是花了幾個晚上研究了下,並寫成Demo(各位可下載下來對照程式碼自行研究),以便後用。

        首先什麼是MVVM,MVVM解決了什麼問題。MVVM是Model、View和連線兩者的ViewModel組成,Model負責提供資料的業務邏輯,View負責頁面的顯示,ViewModel連線View和Model,ViewModel通過呼叫Model獲得頁面所需要的資料並通過View中的繫結將資料顯示到頁面上。

        如何做到頁面與邏輯分離的呢,理想狀態下,View層的Code-Behind檔案中只有在建構函式中呼叫初始UI元素的一行程式碼及設定View層的DataContext為對應的ViewModel。這樣美工可根據原始設計圖去做相應的美化設計,設計好直接替換即可。當然了還有一個好處就是可以方便的進行單元測試。
        一個完整的三層效果如下:
        View層(資料和事件都通過繫結實現):

        ViewModel層(注意看圈出來的,圈出來的是View頁面所繫結的屬性):         Model層(這裡MainModel檔案裡沒有程式碼,用其他的Model代替看效果):


          專案結構以及最終效果(DataAccess模擬測試所需要的資料,實際專案一般是資料庫):



        至此全部完成,只是個人的一些總結,對自己是一個記錄,同時希望也能對別人有些幫助,如果有什麼錯誤,還望不吝指出,共同進步,轉載請保留原文地址

        原始碼下載