private void LoadTweetsFromJsFiles() { RunOnUIThread(delegate() { gridTweets.ItemsSource = null; gridOverlayLoading.Visibility = System.Windows.Visibility.Visible; gridContainer.IsEnabled = false; }); tweetsCollectionView = null; notDeletedTweets = new List <JsonTweet>(); // If caller already assigned the list of tweets if (areTweetsFetchedThroughAPI) { ; } else { List <JsFile> jsFiles = appSettings.JsFiles; if (jsFiles == null) { //TODO error message here return; } foreach (JsFile jsFile in jsFiles) { RunOnUIThread(delegate() { txtFeedback.Text += "\nLoading tweets: " + jsFile.FriendlyFilename + " " + jsFile.Year; }); mTweetsCollection.AddRange(jsFile.ExtractTweets()); } } RunOnUIThread(delegate() { txtFeedback.Text += "\nDone!"; }); mTweetsCollection.OrderBy(t => t.Date); tweetsCollectionView = CollectionViewSource.GetDefaultView(mTweetsCollection); tweetsCollectionView.GroupDescriptions.Add(new PropertyGroupDescription("YearAndMonth")); // tweetsCollectionView.GroupDescriptions.Add(new PropertyGroupDescription("Type")); RunOnUIThread(delegate() { gridTweets.ItemsSource = tweetsCollectionView; gridTweets.ItemScrollingBehavior = ItemScrollingBehavior.Deferred; gridContainer.IsEnabled = true; txtTotalTweetsNB.Text = string.Format("(Total tweets: {0})", mTweetsCollection.Count); gridOverlayLoading.Visibility = Visibility.Hidden; }); }
private void LoadTweets() { gridTweets.Dispatcher.BeginInvoke(new Action(delegate() { gridTweets.ItemsSource = null; gridOverlayLoading.Visibility = System.Windows.Visibility.Visible; gridContainer.IsEnabled = false; })); tweetsCollectionView = null; notDeletedTweets = new ObservableRangeCollection <tweetTJson>(); // Called should assign those tweets to 'ObservableRangeCollection<Tweet> tweets' directly if (areTweetsFetchedThroughAPI) { ; } else { List <JsFile> jsFiles = appSettings.JsFiles; if (jsFiles == null) { //TODO error message here return; } foreach (JsFile jsFile in jsFiles) { tweets.AddRange(GetTweetsFromFile(jsFile)); } } txtFeedback.Dispatcher.BeginInvoke(new Action(delegate() { txtFeedback.Text += "\nDone!"; })); tweets.OrderBy(t => t.Date); tweetsCollectionView = CollectionViewSource.GetDefaultView(tweets); tweetsCollectionView.GroupDescriptions.Add(new PropertyGroupDescription("YearMonth")); // tweetsCollectionView.GroupDescriptions.Add(new PropertyGroupDescription("Type")); gridTweets.Dispatcher.BeginInvoke(new Action(delegate() { gridTweets.ItemsSource = tweetsCollectionView; //gridTweets.AutoScrollCurrentItem = Xceed.Wpf.DataGrid.AutoScrollCurrentItemTriggers.CurrentChanged; gridTweets.ItemScrollingBehavior = Xceed.Wpf.DataGrid.ItemScrollingBehavior.Deferred; gridContainer.IsEnabled = true; txtTotalTweetsNB.Text = String.Format("(Total tweets: {0})", tweets.Count); gridOverlayLoading.Visibility = System.Windows.Visibility.Hidden; })); }