/// <summary>
 /// Calls the <see cref="PropertyChanged"/> event on
 /// the <see cref="DispatcherObject"/>'s thread. Used
 /// to indicate property changes on the UI thread.
 /// </summary>
 /// <param name="dispatcherObject">The dispatcher to use to call the event on the UI thread.</param>
 /// <param name="propertyNames">The names of the properties.</param>
 protected virtual void OnPropertyChanged(DispatcherObject dispatcherObject, params string[] propertyNames)
 {
     dispatcherObject.CheckAndInvoke(() => OnPropertyChanged(propertyNames));
 }
 /// <summary>
 /// Calls the <see cref="PropertyChanged"/> event on
 /// the <see cref="DispatcherObject"/>'s thread. Used
 /// to indicate property changes on the UI thread.
 /// </summary>
 /// <param name="dispatcherObject">The dispatcher to use to call the event on the UI thread.</param>
 /// <param name="propertyName">The name of the property.</param>
 protected virtual void OnPropertyChanged(DispatcherObject dispatcherObject, string propertyName)
 {
     dispatcherObject.CheckAndInvoke(() => OnPropertyChanged(propertyName));
 }