using System.ComponentModel; using System.Runtime.CompilerServices; namespace Plugin.BurnIn.Model { public class BaseModel : INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; public virtual void RaisePropertyChanged(string name) { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name)); } public void RaiseAndSetIfchanged(ref T old, T @new, [CallerMemberName] string propertyName = null) { old = @new; if (propertyName != null) RaisePropertyChanged(propertyName); } } }