2015年12月18日 星期五

[WPF] Model-View-ViewModel (MVVM)

MVVM 是 Model-View-ViewModel 的縮寫, 是一種撰寫程式設計的方式,以MVVM的方式撰寫程式,可以降低程式之間的相依性,使每個程式負責的內容分工的很清楚;使用者介面程式歸使用者介面程式,商業邏輯程式歸商業邏輯程式,資料歸資料,在日後的修改、維護上比較容易。下圖為MVVM的示意圖,上層是較接近跟使用者的互動,下層是較接近程式設計者。


*注意:上圖中的箭頭是有意義的,上層的物件可以向下存取,但是下層的物件並不會知道上層的東西長什麼樣子,透過此原則,才得以做到乾淨的分層與鬆散藕合。

各層分工如下:
·                  Model : 用來描述資料實體(Entity)的簡單類別(Class),也可以在這邊實作商業邏輯以及與資料庫溝通等資料存取相關的功能。

·                  View : 其實就是XAML檔,也就是使用者介面,使用者介面設計人員只需要在Blend中進行對它的編輯,並透過Binding來和ViewModel溝通(DataContext指定為某個ViewModel,以更進一步的與其中的屬性進行Binding)

·                  ViewModel : 就是供View使用的Model,透過公開的屬性(public property)       View進行Binding,供其使用。

內容部分引用來自 :
https://www.dotblogs.com.tw/ouch1978/archive/2011/04/23/introducing-mvvm.aspx

http://blog.sanc.idv.tw/2011/12/wpf-mvvm.html

範例原始碼 Source Code

沒有留言: