WPF MVVM Training
WPF MVVM Training
What's MVVM?
is an architectural pattern created by John Gossman from WPF team is a variation of MVC pattern is similar to Martin Fowlers PresentationModel pattern WPF Data Binding & Commanding
MVVM
View ViewModel Model
View knows ViewModel ViewModel knows Models But not vice versa.
View
represents the user interface that the user will see. can be a user control or Data Template shouldn't contain any logic that you want to test Keep the view as simple as possible.
View Model
An abstraction of View Connector between View and Model Keep View State, Value Conversion No strong or weak (via Interface) reference of View Make VM as testable as possible (e.g. no call to Singleton class) No Control related Stuff in VM
Model
can be Data Model, DTO, POCO, autogenerated proxy of domain class and UI Model based on how you want to have the separation between Domain Service and Presentation Layer No reference to ViewModel
Disadvantages of MVVM
lack of standardization so everyone has own favor For simple UI, M-V-VM can be overkill
Implementing MVVM
DEMO Simple MVVM DEMO MVVM + Data Template DEMO DI + IoC DEMO BDD