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 diagram

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

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 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 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 diagram

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

GridViewModel inheritance hierarchy diagram

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

MultiViewModel inheritance hierarchy diagram