Model-View-ViewModel (MVVM)#
MVVM is a popular software architecture pattern commonly used with WPF applications

- Model-View-ViewModel pattern
- 2 way binding
- The View
DataContextproperty should be assigned an implementation of the View Model “{Binding …}”XAML element links a View property to a View Model property
- The View
- Change notification
- View Model should implement the
INotifyPropertyChangedinterfacePropertyChangedevent should be raised whenever a property value changes
- View Model should implement the
- Commands
- View Model must provide an implementation of the
ICommandinterface per command
- View Model must provide an implementation of the
- 2 way binding
- Helper classes provided by the Display API to implement the above
BindableBasebase class- Implements
INotifyPropertyChanged - Provides
SetPropertymethods to simplify following the pattern
- Implements
DisposableBindableBasebase class- As per
BindableBasebut also supportsIDisposable
- As per
DelegateCommandclass- Provides a generic implementation of
ICommandfor commands
- Provides a generic implementation of