Esempio n. 1
0
        //#endregion Set classes

        //#region Set structs

        /// <summary>
        ///     Establece la propiedad utilizando el operador <c>!=</c> para comprobar si
        ///     ha cambiado.
        ///     Solo se puede utilizar en <c>bool</c>.
        /// </summary>
        public static void SetSt(this INotifyPropertyChangedEx_Helper @this,
                                 string name, bool oldValue, bool value,
                                 Action <bool> setter)
        {
            if (oldValue != value)
            {
                setter(value);
                @this.NotifyPropertyChanged(name, oldValue, value);
            }
        }
Esempio n. 2
0
 /// <summary>
 ///     Establece la propiedad utilizando el método <c>Equals</c> para comprobar si
 ///     ha cambiado.
 ///     No se puede utilizar en estructuras.
 /// </summary>
 public static void SetEqCl <T>(this INotifyPropertyChangedEx_Helper @this,
                                string name, T oldValue, T value,
                                Action <T> setter) where T : class
 {
     if (!object.Equals(oldValue, value))
     {
         setter(value);
         @this.NotifyPropertyChanged(new PropertyChangedExEventArgs(name, oldValue, value));
     }
 }
Esempio n. 3
0
 public static void EpsilonSet <T>(this INotifyPropertyChangedEx_Helper @this,
                                   ref T backingStore, T value, double epsilon = MathUtils.EPSILON,
                                   [CallerMemberName] string name = "")
 {
     if (!EpsilonEqualityComparer <T> .Default.EpsilonEquals(backingStore, value, epsilon))
     {
         T oldValue = backingStore;
         backingStore = value;
         @this.NotifyPropertyChanged(new PropertyChangedExEventArgs(name, oldValue, value));
     }
 }
Esempio n. 4
0
 public static void Set <T>(this INotifyPropertyChangedEx_Helper @this,
                            ref T backingStore, T value,
                            [CallerMemberName] string name = "")
 {
     if (!EqualityComparer <T> .Default.Equals(backingStore, value))
     {
         T oldValue = backingStore;
         backingStore = value;
         @this.NotifyPropertyChanged(new PropertyChangedExEventArgs(name, oldValue, value));
     }
 }
Esempio n. 5
0
        //#endregion Set structs

        /// <summary>
        /// </summary>
        public static void Set <T>(this INotifyPropertyChangedEx_Helper @this,
                                   string name, T oldValue, T value,
                                   Action <T> setter)
        {
            if (typeof(T).IsValueType)
            {
                if (!object.Equals(oldValue, value))
                {
                    setter(value);
                    @this.NotifyPropertyChanged(name, oldValue, value);
                }
            }
            else
            {
                if (!object.ReferenceEquals(oldValue, value))
                {
                    setter(value);
                    @this.NotifyPropertyChanged(name, oldValue, value);
                }
            }
        }
Esempio n. 6
0
 public static void NotifyPropertyChanged(this INotifyPropertyChangedEx_Helper sender, string name, object oldValue, object value)
 {
     sender.NotifyPropertyChanged(new PropertyChangedExEventArgs(name, oldValue, value));
 }