NewsPage.xaml.cs CampusAppWP8::Pages::News::NewsPage CampusAppWP8::Pages::News //----------------------------------------------------------------------------- //<copyrightfile="NewsPage.xaml.cs"company="BTU/IIT"> //Companycopyrighttag. //</copyright> //<author>fiedlchr</author> //<sience>03.05.2013</sience> //----------------------------------------------------------------------------- namespaceCampusAppWP8.Pages.News { usingSystem; usingSystem.Linq; usingSystem.Windows; usingSystem.Windows.Controls; usingSystem.Windows.Navigation; usingCampusAppWP8.Model.RSS; usingCampusAppWP8.Resources; usingCampusAppWP8.Utility; usingMicrosoft.Phone.Controls; usingMicrosoft.Phone.Shell; publicpartialclassNewsPage:PhoneApplicationPage { privateboolisSourceSet=false; privateintlastSelectedIndex=-1; privateboolisNewInstance=false; publicNewsPage() { this.InitializeComponent(); ApplicationBarIconButtonlinkBtn=newApplicationBarIconButton(); linkBtn.IconUri=newUri(Icons.Link,UriKind.Relative); linkBtn.Text=AppResources.NewsLinkBtn; linkBtn.Click+=newEventHandler(this.NewsLink_Click); ApplicationBar.Buttons.Add(linkBtn); this.isNewInstance=true; } protectedoverridevoidOnNavigatedTo(NavigationEventArgse) { base.OnNavigatedTo(e); if(this.isNewInstance) { if((NewsIndexPage.Feed==null)||(NewsIndexPage.Feed.GetModel()==null)) { RSSViewModeltempModel=null; if((tempModel=App.LoadFromIsolatedStorage<RSSViewModel>(Constants.IsolatedStorage_NewsRSSModel))!=null) { if(NewsIndexPage.Feed==null) { NewsIndexPage.Feed=newFeed.News.NewsFeed(false); } NewsIndexPage.Feed.Model=tempModel; this.isSourceSet=false; } } this.isNewInstance=false; } //SetpivotitemSource if(this.isSourceSet==false) { this.NewsPivot.ItemsSource=NewsIndexPage.GetNewsFeed().Model.Channel[0].Item; this.isSourceSet=true; } stringpivotIndex=string.Empty; //Navigatetotheselectedpivotitem if(NavigationContext.QueryString.TryGetValue(Constants.ParamPivotIndex,outpivotIndex)) { intpivotIndexInt=int.Parse(pivotIndex); //iftheindexisintherangeofthearray if((pivotIndexInt>=0)&&(pivotIndexInt<NewsIndexPage.GetNewsFeed().Model.Channel[0].Item.Count())) { NewsPivot.SelectedIndex=pivotIndexInt; } else { MessageBox.Show("ERROR:pivotIndexoutofrange!!!"); } } } protectedoverridevoidOnNavigatedFrom(NavigationEventArgse) { base.OnNavigatedFrom(e); if(e.NavigationMode!=System.Windows.Navigation.NavigationMode.Back) { App.SaveToIsolatedStorage<RSSViewModel>(Constants.IsolatedStorage_NewsRSSModel,NewsIndexPage.GetNewsFeed().GetModel()); } } privatevoidOnPivotSelectionChange(objectsender,SelectionChangedEventArgse) { intselIndex=(senderasPivot).SelectedIndex; if(this.lastSelectedIndex>-1) { Utilities.SetElementVisibility(this.NewsPivot,"NewsParentGrid","NewsWebBrowser",Visibility.Collapsed,this.lastSelectedIndex); Utilities.SetElementVisibility(this.NewsPivot,"NewsParentGrid","NewsTextGrid",Visibility.Visible,this.lastSelectedIndex); } this.lastSelectedIndex=selIndex; } privatevoidNewsLink_Click(objectsender,EventArgse) { if(Visibility.Visible==Utilities.GetElementVisibility(this.NewsPivot,"NewsParentGrid","NewsTextGrid",this.NewsPivot.SelectedIndex)) { Utilities.SetElementVisibility(this.NewsPivot,"NewsParentGrid","NewsTextGrid",Visibility.Collapsed,this.NewsPivot.SelectedIndex); Utilities.SetElementVisibility(this.NewsPivot,"NewsParentGrid","NewsWebBrowser",Visibility.Visible,this.NewsPivot.SelectedIndex); } else { Utilities.SetElementVisibility(this.NewsPivot,"NewsParentGrid","NewsWebBrowser",Visibility.Collapsed,this.NewsPivot.SelectedIndex); Utilities.SetElementVisibility(this.NewsPivot,"NewsParentGrid","NewsTextGrid",Visibility.Visible,this.NewsPivot.SelectedIndex); } } } }