/// <summary> /// Sets the property value if the value is different fromt he existing value. /// The PropertyChanging and PropertyChanged events are raised if the value is updated. /// </summary> /// <typeparam name="T">The type of the property</typeparam> /// <param name="changedHandler">The handler for the PropertyChanged event.</param> /// <param name="changingHandler">The handler for the PropertyChanging event.</param> /// <param name="newValue">The new value.</param> /// <param name="oldValueExpression">The old value expression.</param> /// <param name="setter">The setter delegate.</param> /// <returns>The new value.</returns> public static T SetValue <T>(this PropertyChangingEventHandler changingHandler, PropertyChangedEventHandler changedHandler, T newValue, Expression <Func <T> > oldValueExpression, Action <T> setter) { return(changedHandler.SetValue <T>(changingHandler, newValue, oldValueExpression, setter)); }