Toolkit Architecture
Hierarchy of Viewmodel Base Classes
MugenMvvm has a bunch of base view models for different usage scenarios:
ViewModelBase
- base class for all ViewModels. Contains methods for creation of others ViewModels, methods for message passing beetwen VMs, properties and method to control the state of async operations (IsBusy
,BusyMessage
, etc.). InheritsNotifyPropertyChanged
.
CloseableViewModel
- inheritsViewModelBase
class, implementsIClosableViewModel
interface that allows to control the closing behaviour of ViewModel.
ValidatableViewModel
- inheritsCloseableViewModel
class and contains methods and properties for validation. Also implementsINotifyDataErrorInfo
to notificate bindings about errors.
EditableViewModel
- inheritsValidatableViewModel
, allows to edit and validate models. This viewmodel is tracing the state of model object and allows to undo any changes.
WorkspaceViewModel
- inheritsCloseableViewModel
class. Contains propertiesIsSelected
andDisplayName
. The first one allows to trace whenever VM was selected. The second one allows to show some useful text on the View through binding on any text property in View's control. ImplementsIViewAwareViewModel
interface that allows to work with View throughIView View
property. ImplementsINavigableViewModel
interface that allows to control navigation of ViewModel (through methodsOnNavigatingFrom
,OnNavigatedFrom
,OnNavigatedTo
).
GridViewModel
- inheritsViewModelBase
, allows to work with different collections of objects through mechanism of bindings.
MultiViewModel
- inheritsCloseableViewModel
, allows to work with collection of viewmodels (especially useful for work withTabControl
).
Updated less than a minute ago