This is a very lightweight library containing base classes for implementing .NET applications using the MVVM architecture. It is fully unit tested and platform independent.
For an example project, please visit my other project Stein, where it is used in a WPF environment.
This library contains base implementations of:
INotifyPropertyChanging
andINotifyPropertyChanged
INotifyDataErrorInfo
ICommand
and asynchronousIAsyncCommand
Additionally, there are other base classes that provide additional features, for example TreeViewModel
implements an IsChecked
property that automatically updates its parent and children.
For more information, please visit the documentation.
The recommended way to use this library is via Nuget.
Currently supported frameworks:
- .NET Standard 2.0 or higher
- .NET Framework 4.5 or higher
For most applications, it is recommended that viewmodels inherit from the ViewModel base class (more info), but if you only need an implementation for INotifyPropertyChanged
(or INotifyPropertyChanging
) you may use the Bindable base class (more info) instead.
Commands may inherit from either ViewModelCommand<> or AsyncViewModelCommand<> (more info).
For an overview of the provided interfaces and classes please visit the documentation.
This library originated in my other project Stein and was subsequently moved to its own repository and nuget package. The goal is to provide a great yet minimal foundation which also promotes a good code style. Nearly everything is marked virtual (except events) so you can customize it to fit your needs.
And of course, this library is 🚀blazing fast🚀.
If you find a bug feel free to open an issue. Contributions are also appreciated.