Example #1
0
 public static void MapPropertyChanged(this INotifyPropertyChanged obj, PropertyChangedEventArgs e, PropertyChangedEventHandler propertyChanged, string propertyName, params string[] mappedPropertyNames)
 {
     if (e.PropertyName == propertyName)
     {
         foreach (var name in mappedPropertyNames)
         {
             obj.InvokePropertyChanged(propertyChanged, name);
         }
     }
 }
 /// <summary>
 /// If the new value differs from the current private field value, this method will change
 /// the given private field value and will raise the PropertyChanged event.
 ///
 /// Checks for equality between object using Equals()
 /// </summary>
 /// <typeparam name="T">a struct type</typeparam>
 /// <param name="sender">an object that implements INotifyPropertyChanged</param>
 /// <param name="handler">PropertyChanged event handler</param>
 /// <param name="privateField">a struct</param>
 /// <param name="newValue">a struct</param>
 /// <param name="propertyName">name of the public property</param>
 public static void ChangeProperty <T>(this INotifyPropertyChanged sender, PropertyChangedEventHandler handler,
                                       ref T privateField, ref T newValue, string propertyName) where T : struct
 {
     if (privateField.Equals(newValue))
     {
         return;
     }
     privateField = newValue;
     sender.InvokePropertyChanged(handler, propertyName);
 }