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