Browse Source

Added SetProperty<T> to NotifyableObject

CPKreuz 4 years ago
parent
commit
8919feff06
1 changed files with 15 additions and 0 deletions
  1. 15 0
      PixiEditor/NotifyableObject.cs

+ 15 - 0
PixiEditor/NotifyableObject.cs

@@ -1,5 +1,7 @@
 using System;
 using System;
+using System.Collections.Generic;
 using System.ComponentModel;
 using System.ComponentModel;
+using System.Runtime.CompilerServices;
 
 
 namespace PixiEditor.Helpers
 namespace PixiEditor.Helpers
 {
 {
@@ -16,5 +18,18 @@ namespace PixiEditor.Helpers
                 PropertyChanged(this, new PropertyChangedEventArgs(property));
                 PropertyChanged(this, new PropertyChangedEventArgs(property));
             }
             }
         }
         }
+
+        protected bool SetProperty<T>(ref T backingStore, T value, [CallerMemberName] string propertyName = "")
+        {
+            if (EqualityComparer<T>.Default.Equals(backingStore, value))
+            {
+                return false;
+            }
+
+            backingStore = value;
+            PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
+            return true;
+        }
+
     }
     }
 }
 }