MvvmReady
Make cross-platform app MVVM-Ready. Lightweight with only one small binary/file.
Installation
Get MvvmReady library from NuGet.
dotnet add package MvvmReady
Features
Command
It’s a simple ICommand
implementation. Here is an example:
public ICommand HelloWorldCommand => new Command(() =>
{
Debug.WriteLine("Hello, world!");
});
ViewModelBase
It’s an abstract base class for ViewModels.
Use Set(ref variable, value)
to set value and trigger PropertyChanged
event.
Use RaisePropertyChanged()
to trigger PropertyChanged
event for current property.
Here is an example:
public class ProfileViewModel: ViewModelBase
{
private string _name;
public string Name
{
get => _name;
set => Set(ref _name, value);
}
public int Age
{
get => DateTime.Now.Year - DateOfBirth.Year
}
private DateTime _dateOfBirth;
public DateTime DateOfBirth
{
get => _dateOfBirth;
set
{
Set(ref _dateOfBirth, value);
RaisePropertyChanged(nameof(Age));
}
}
}
ServiceLocator
It’s a simple service locator.
You can register interface to implementation by using ServiceLocator.Current.Register<IInterface, Implementation>()
.
You can also register service to itself by using ServiceLocator.Current.Register<Service>()
.
You can register a singleton service by using ServiceLocator.Current.Register<IInterface>(() => MyService.Instance)
.
To get service object, use ServiceLocator.Current.Get<IService>()
.
License
This work is licensed under MIT.