/// <inheritdoc cref="ObservableCollection{T}"/>
 protected override void ClearItems()
 {
     // If any of the event handlers exhibit a SynchronizationContext, make sure to use it here.
     if (DispatcherSyncContext == null)
     {
         base.ClearItems();
     }
     else
     {
         DispatcherSyncContext.Send(new SendOrPostCallback((s) => base.ClearItems()), null);
     }
 }
 /// <inheritdoc cref="ObservableCollection{T}"/>
 protected override void InsertItem(int index, TItem item)
 {
     // If any of the event handlers exhibit a SynchronizationContext, make sure to use it here.
     if (DispatcherSyncContext == null)
     {
         base.InsertItem(index, item);
     }
     else
     {
         DispatcherSyncContext.Send(new SendOrPostCallback((s) => base.InsertItem(index, item)), null);
     }
 }
 /// <inheritdoc cref="ObservableCollection{T}"/>
 protected override void MoveItem(int oldIndex, int newIndex)
 {
     // If any of the event handlers exhibit a SynchronizationContext, make sure to use it here.
     if (DispatcherSyncContext == null)
     {
         base.MoveItem(oldIndex, newIndex);
     }
     else
     {
         DispatcherSyncContext.Send(new SendOrPostCallback((s) => base.MoveItem(oldIndex, newIndex)), null);
     }
 }