protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null) { var handler = this.PropertyChanged; handler?.Invoke(this, new PropertyChangedEventArgs(propertyName)); }