Ejemplo n.º 1
0
 public static bool setProperty <TItem, TProperty>
     (this TItem item, ref TProperty member, TProperty newValue, PropertyChangedNoValueDelegate <TItem> propertyChangedDelegate,
     BeforeChangePropertyDelegate <TProperty> beforeChangePropertyDelegate = null,
     AfterChangePropertyDelegate <TProperty> afterChangePropertyDelegate   = null,
     PropertyValidatorDelegate <TProperty> validator = null,
     [CallerMemberName] string propertyName          = "")
     where TItem : INotifyPropertyChanged
 => item.setProperty(ref member, newValue, (i, ov, nv) => propertyChangedDelegate?.Invoke(i), beforeChangePropertyDelegate, afterChangePropertyDelegate, validator, propertyName);
Ejemplo n.º 2
0
        public static bool setProperty <TItem, TProperty>
            (this TItem item, ref TProperty member, TProperty newValue,
            PropertyChangedTwoValuesDelegate <TItem, TProperty> propertyChangedDelegate,
            BeforeChangePropertyDelegate <TProperty> beforeChangePropertyDelegate = null,
            AfterChangePropertyDelegate <TProperty> afterChangePropertyDelegate   = null,
            PropertyValidatorDelegate <TProperty> validator = null,
            [CallerMemberName] string propertyName          = "")
            where TItem : INotifyPropertyChanged
        {
            validator?.Invoke(newValue);
            if (Equals(member, newValue))
            {
                return(false);
            }
            TProperty oldValue = member;

            beforeChangePropertyDelegate?.Invoke(oldValue, newValue);
            member = newValue;
            afterChangePropertyDelegate?.Invoke(oldValue, newValue);
            propertyChangedDelegate?.Invoke(item, oldValue, newValue);
            item.RaisePropertyChanged(propertyName);
            return(true);
        }