private void PageListItem_Selected(object sender, RoutedEventArgs e) { QualitiesLoadingPrompt.Visibility = Visibility.Visible; QualityList.Items.Clear(); VideoInfo.Page page = (VideoInfo.Page)((ListBoxItem)sender).Tag; if (page != null) { if (showQualitiesThread != null) { showQualitiesThread.Abort(); } showQualitiesThread = new Thread(delegate() { ShowQualies(page); }); showQualitiesThread.Start(); } }
private void ShowQualies(VideoInfo.Page page) { List <VideoInfo.Page.Quality> qualities = page.GetQualities(); if (qualities != null) { Dispatcher.Invoke(new Action(() => { foreach (VideoInfo.Page.Quality quality in qualities) { TextBlock textBlock = new TextBlock(); textBlock.TextTrimming = TextTrimming.WordEllipsis; textBlock.Text = quality.Description; ListBoxItem listBoxItem = new ListBoxItem(); listBoxItem.Tag = quality; listBoxItem.Content = textBlock; listBoxItem.IsEnabled = quality.IsAvaliable; QualityList.Items.Add(listBoxItem); } QualitiesLoadingPrompt.Visibility = Visibility.Hidden; })); } }