void OpenMojangFeedItem(object sender, RoutedEventArgs e) { MojangFeedItem mitem = ((sender as Button).Parent as Grid).Parent as MojangFeedItem; string data = mitem.Data; MojangFeedContentPlaceholder = new UIElement[grdMojangFeed.Children.Count]; grdMojangFeed.Children.CopyTo(MojangFeedContentPlaceholder, 0); grdMojangFeed.Children.Clear(); MojangFeedDisplay feeddisp = new MojangFeedDisplay(); feeddisp.Title_Text.Text = mitem.TitleText.Content as string; feeddisp.web.NavigateToString("<style>body { font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif; };</style>" + data); feeddisp.BackButton.Click += CloseMojangFeedItem; grdMojangFeed.Children.Add(feeddisp); }
private void ParseMojangXml(string Path) { try { App.Log("Loading mojang feed from: " + Path); XmlReader rssr = XmlReader.Create(Path); SyndicationFeed feed = SyndicationFeed.Load(rssr); App.InvokeAction(delegate { App.mainWindow.lstMojangFeed.Items.Clear(); }); //App.Log("Loaded items: "); foreach (SyndicationItem item in feed.Items.Take(30)) { //App.Log(item.Id); MojangFeedItem feeditem = null; App.InvokeAction(delegate { feeditem = new MojangFeedItem(); feeditem.TitleText.Content = item.Title.Text; XElement x = item.ElementExtensions.First(p => p.OuterName == "encoded").GetObject <XElement>(); feeditem.Data = x.Value; feeditem.DateText.Text = item.PublishDate.ToString("d"); }); App.InvokeAction(delegate { App.mainWindow.lstMojangFeed.Items.Add(feeditem); feeditem.TitleText.Click += OpenMojangFeedItem; }); } rssr.Close(); //App.Log("Load of feed: " + Path + " complete!"); } catch (Exception ex) { App.Log("Error while loading mojang feed from: " + Path + " , Error: " + ex.ToString()); } }