diff --git a/MvvmMicro.sln.DotSettings b/MvvmMicro.sln.DotSettings index 6ff841c..f9fdce5 100644 --- a/MvvmMicro.sln.DotSettings +++ b/MvvmMicro.sln.DotSettings @@ -4,6 +4,7 @@ True True True + True True True True diff --git a/README.md b/README.md index 2cd0dd2..ebffc19 100644 --- a/README.md +++ b/README.md @@ -1,23 +1,39 @@ # logo MvvmMicro Nuget -A clean and lightweight MVVM framework for WPF, UWP and .NET Standard 2.0 inspired by MVVM Light Toolkit. +A lightweight MVVM framework for .NET inspired by [MVVM Light Toolkit](https://github.com/lbugnion/mvvmlight). ## Goals + - No third party dependencies, such as `CommonServiceLocator` or `System.Windows.Interactivity`. -- Avoid [feature kreep](https://en.wikipedia.org/wiki/Feature_creep) – only core MVVM types and services are included, such as `RelayCommand`, `AsyncRelayCommand`, `ObservableObject` and a simple `IMessenger`. +- No feature kreep – only core MVVM types and services are included, such as `RelayCommand`, `AsyncRelayCommand`, +`ObservableObject`, and a simple `IMessenger`. ## Supported platforms + - .NET Framework 4.6.2 & .NET 5.0 (WPF) - Universal Windows Platform (UWP) -- .NET Standard 2.0 +- .NET Standard 2.0 (Xamarin.Forms, Avalonia, MAUI, etc.) ## Installation + The primary way to use MvvmMicro is by adding the [nuget](https://www.nuget.org/packages/MvvmMicro) package to your project: ``` Install-Package MvvmMicro ``` -## Classes and interfaces -Here's an overview of classes and interfaces exposed by the library: +## Overview + +| Type | Description | +| ----- | ----------- | +| ObservableObject | The base class for objects that support property change notification. | +| ViewModelBase | The base class for view models with the _Messenger_ and _IsInDesignMode_ properties. | +| Messenger | A service for sending and receiving messages, typically between view models and views. | +| RelayCommand,
RelayCommand\ | An _ICommand_ implementation based on a synchronous delegate for _Execute_ and _CanExecute_. | +| AsyncRelayCommand,
AsyncRelayCommand\ | An _ICommand_ implementation based on an asynchronous delegate for _Execute_ with cancellation support. | + ![Class diagram](src/MvvmMicro/Diagrams/ClassDiagram.png) + +## License + +Code licensed under the [MIT License](LICENSE). diff --git a/src/MvvmMicro/Diagrams/ClassDiagram.cd b/src/MvvmMicro/Diagrams/ClassDiagram.cd index ed0e91a..697c340 100644 --- a/src/MvvmMicro/Diagrams/ClassDiagram.cd +++ b/src/MvvmMicro/Diagrams/ClassDiagram.cd @@ -14,13 +14,11 @@ - + @@ -30,7 +28,7 @@ - AAAAAAAAAAAAAAEAAEAAIAAAAAAiAAAAQAAAAAAAAAA= + AAAAAAAQAAAAAAEAAEAAIAAAAAAhAAAAAAAAAAAAEAA= Messenger.cs @@ -44,20 +42,24 @@ - + - + - AAAAAAAAABAAAAAAAAQAAAAAAASAAAAAAAAAAAAAAAA= + AAAAAAAAAFAAAgAAAgQAAAAAAASAAAQAAAAAAAAAAAA= ViewModelBase.cs @@ -68,6 +70,7 @@