ViewModelBase.cs 630 B

123456789101112131415161718192021222324252627282930313233
  1. using System;
  2. namespace crown_tests.GtkExt
  3. {
  4. public class ViewModelBase: IPropertyChanged
  5. {
  6. public ViewModelBase()
  7. {
  8. }
  9. protected Boolean SetAndNotify<T>(ref T field, T newValue, String propertyName) {
  10. if (!object.Equals(field, newValue)) {
  11. field = newValue;
  12. Notify(propertyName);
  13. return true;
  14. }
  15. return false;
  16. }
  17. #region IPropertyChanged implementation
  18. public event PropertyChangedEventHandler PropertyChanged;
  19. protected void Notify(String propertyName)
  20. {
  21. if (PropertyChanged != null)
  22. PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
  23. }
  24. #endregion
  25. }
  26. }