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.). Inherits NotifyPropertyChanged.
ViewModelBase inheritance hierarchy diagramViewModelBase inheritance hierarchy diagram

ViewModelBase inheritance hierarchy diagram

  • CloseableViewModel - inherits ViewModelBase class, implements IClosableViewModel interface that allows to control the closing behaviour of ViewModel.
CloseableViewModel inheritance hierarchy diagramCloseableViewModel inheritance hierarchy diagram

CloseableViewModel inheritance hierarchy diagram

  • ValidatableViewModel - inherits CloseableViewModel class and contains methods and properties for validation. Also implements INotifyDataErrorInfo to notificate bindings about errors.
ValidatableViewModel inheritance hierarchy diagramValidatableViewModel inheritance hierarchy diagram

ValidatableViewModel inheritance hierarchy diagram

  • EditableViewModel - inherits ValidatableViewModel, allows to edit and validate models. This viewmodel is tracing the state of model object and allows to undo any changes.
EditableViewModel inheritance hierarchy diagramEditableViewModel inheritance hierarchy diagram

EditableViewModel inheritance hierarchy diagram

  • WorkspaceViewModel - inherits CloseableViewModel class. Contains properties IsSelected and DisplayName. 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. Implements IViewAwareViewModel interface that allows to work with View through IView View property. Implements INavigableViewModel interface that allows to control navigation of ViewModel (through methods OnNavigatingFrom, OnNavigatedFrom, OnNavigatedTo).
WorkspaceViewModel inheritance hierarchy diagramWorkspaceViewModel inheritance hierarchy diagram

WorkspaceViewModel inheritance hierarchy diagram

  • GridViewModel - inherits ViewModelBase, allows to work with different collections of objects through mechanism of bindings.
GridViewModel inheritance hierarchy diagramGridViewModel inheritance hierarchy diagram

GridViewModel inheritance hierarchy diagram

  • MultiViewModel - inherits CloseableViewModel, allows to work with collection of viewmodels (especially useful for work with TabControl).
MultiViewModel inheritance hierarchy diagramMultiViewModel inheritance hierarchy diagram

MultiViewModel inheritance hierarchy diagram