/// <summary> /// Safe way to invoke the event one time for each passed argument. (Only invokes if it has any event handlers). /// </summary> /// <param name="eventHandler">The event handler.</param> /// <param name="sender">The sender.</param> /// <param name="eventArgs">The event arguments.</param> /// <returns>The event handler.</returns> public static PropertyChangedEventHandler InvokeEvent(this PropertyChangedEventHandler eventHandler, object sender, params string[] eventArgs) { var propertyChangedEventArgs = new List <PropertyChangedEventArgs>(); eventArgs.ForEach(x => propertyChangedEventArgs.Add(new PropertyChangedEventArgs(x))); return(eventHandler.InvokeEvent(sender, propertyChangedEventArgs.ToArray())); }
/// <summary> /// Safe way to invoke the event one time for each passed event argument. (Only invokes if it has any event handlers). /// </summary> /// <param name="eventHandler">The event handler.</param> /// <param name="sender">The sender.</param> /// <param name="eventArgs">The event arguments.</param> /// <returns>The event handler.</returns> public static PropertyChangedEventHandler InvokeEvent(this PropertyChangedEventHandler eventHandler, object sender, params PropertyChangedEventArgs[] eventArgs) { eventArgs.ForEach(x => eventHandler.InvokeEvent(sender, x)); return(eventHandler); }
/// <summary> /// Safe way to invoke the event one time for each passed property. (Only invokes if it has any event handlers). /// </summary> /// <param name="eventHandler">The event handler.</param> /// <param name="sender">The sender.</param> /// <param name="expressions">The properties triggering the expression.</param> /// <returns>The event handler.</returns> public static PropertyChangedEventHandler InvokeEvent(this PropertyChangedEventHandler eventHandler, object sender, params Expression <Func <object> >[] expressions) { expressions.ForEach(x => eventHandler.InvokeEvent(sender, new PropertyChangedEventArgs(x.GetPropertyName()))); return(eventHandler); }