You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

57 lines
1.5 KiB

using System.ComponentModel;
using System.Runtime.CompilerServices;
namespace GMCabsDriverAssistantSolution.ViewModels
{
public class BaseViewModel : INotifyPropertyChanged
{
#region Fields
private bool isBusy = false;
private string title = string.Empty;
#endregion
#region Properties
public bool IsBusy
{
get => isBusy;
set => SetProperty(ref isBusy, value);
}
public string Title
{
get => title;
set => SetProperty(ref title, value);
}
#endregion
protected bool SetProperty<T>(ref T backingStore, T value,
[CallerMemberName] string propertyName = "",
Action onChanged = null)
{
if (EqualityComparer<T>.Default.Equals(backingStore, value))
{
return false;
}
backingStore = value;
onChanged?.Invoke();
OnPropertyChanged(propertyName);
return true;
}
#region INotifyPropertyChanged
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged([CallerMemberName] string propertyName = "")
{
var changed = PropertyChanged;
if (changed == null)
{
return;
}
changed.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
#endregion
}
}