private void RemoveDataSources(IList selectedItems) { var toRemove = new List <DataSource>(); foreach (object item in selectedItems) { var ds = item as DataSource; toRemove.Add(ds); App.Current.Dispatcher.Invoke(() => AvailableDataSources.Add(ds)); } App.Current.Dispatcher.Invoke(() => toRemove.ForEach(ds => SelectedDataSources.Remove(ds))); }