private void UpdatePodcasts(NotifyCollectionChangedEventArgs e) { CoreDispatcher dispatcher = CoreApplication.MainView.CoreWindow.Dispatcher; UIThread.Dispatch(() => { if (e == null) { Podcasts.Clear(); Podcasts.AddAll(Data.Podcasts.Select((podcast) => new PodcastSummaryViewModel(podcast, ServiceContext))); return; } if (e.Action == NotifyCollectionChangedAction.Add) { foreach (var item in e.NewItems) { Podcast podcast = item as Podcast; if (podcast != null) { Podcasts.Add(new PodcastSummaryViewModel(podcast, ServiceContext)); } else { foreach (Podcast podcastItem in (IEnumerable <Podcast>)item) { Podcasts.Add(new PodcastSummaryViewModel(podcastItem, ServiceContext)); } } } return; } if (e.Action == NotifyCollectionChangedAction.Remove) { foreach (Podcast podcast in e.OldItems) { Podcasts.RemoveFirst((podcastViewModel) => podcastViewModel.Data.Id == podcast.Id); } } }); }