RzAspects by Robert Zhu

<PackageReference Include="RzAspects" Version="0.5.0" />

 PropertyChangeNotificationBase

protected virtual void AfterPropertyChange<T>(string propertyName, ref T property, T newValue)

protected virtual bool BeforePropertyChange<T>(string propertyName, ref T property, T newValue)

protected void RaisePropertyChanged(string property)

protected void RaisePropertyChanging(string property)

protected bool SetProperty<T>(string propertyName, ref T property, T newValue, Action callbackIfChanged = null)