Inherit from
ViewModelBase<T>
and just define your properties like this:
using devoft.ClientModel;
public class DownloadViewModel : ViewModelBase<DownloadViewModel>
{
public int Progress
{
set => SetValue(value);
get => GetValue<int>();
}
}