ViewModelBase.cs 794 B

1234567891011121314151617181920212223242526
  1. using System.ComponentModel;
  2. using System.Runtime.CompilerServices;
  3. namespace AGEHAB.RelatorioSeadIpasgo.Presentation.ViewModels;
  4. public abstract class ViewModelBase : INotifyPropertyChanged
  5. {
  6. public event PropertyChangedEventHandler? PropertyChanged;
  7. protected bool SetProperty<T>(ref T field, T value, [CallerMemberName] string? propertyName = null)
  8. {
  9. if (EqualityComparer<T>.Default.Equals(field, value))
  10. {
  11. return false;
  12. }
  13. field = value;
  14. PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
  15. return true;
  16. }
  17. protected void OnPropertyChanged([CallerMemberName] string? propertyName = null)
  18. {
  19. PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
  20. }
  21. }