/// <summary> /// Raised when the user changes the selected item. /// Check if the item is a seletable item and open the app bar if it's the case /// </summary> /// <param name="sender">GridView or ListView</param> /// <param name="e">Event arguments</param> private void ItemView_OnSelectionChanged(object sender, SelectionChangedEventArgs e) { if (e.AddedItems.Count == 1) { VisualGenericItem selectedItem = (VisualGenericItem)e.AddedItems[0]; // If the item is selectable, open the app bar IList <string> types = new List <string> { "News", "Conference", "Show" }; if (types.Contains(selectedItem.Type)) { AppBar.IsOpen = true; } else { ((Selector)sender).SelectedItem = null; } } else { AppBar.IsOpen = false; } }
public object Convert(object value, Type targetType, object parameter, string language) { string applicationName = ResourcesRsxAccessor.GetString("AppName"); PinnableObject pinnableObject = null; if (value is VisualGenericItem) { VisualGenericItem item = value as VisualGenericItem; pinnableObject = new PinnableObject { Id = string.Format("{0}-{1}-{2}", applicationName, item.Type, item.Id), Title = item.Title, ImageUrl = item.ImageUrl, Content = item.Title }; } else if (value is News) { News news = value as News; pinnableObject = new PinnableObject { Id = string.Format("{0}-News-{1}", applicationName, news.Id), Title = news.Title, ImageUrl = news.ImageUrl, Content = news.Title }; } else if (value is Conference) { Conference conference = value as Conference; pinnableObject = new PinnableObject { Id = string.Format("{0}-Conference-{1}", applicationName, conference.Id), Title = conference.Name, ImageUrl = conference.ImageUrl, Content = conference.Name }; } else if (value is Show) { Show salon = value as Show; pinnableObject = new PinnableObject { Id = string.Format("{0}-Show-{1}", applicationName, salon.Id), Title = salon.Name, ImageUrl = salon.ImageUrl, Content = salon.Name }; } return(pinnableObject); }
/// <summary> /// Raised when the user loads or resumes the page /// </summary> /// <param name="navigationParameter">Passed navigation parameters</param> /// <param name="pageState">Contains saved informations before the page was suspended</param> protected override void LoadState(object navigationParameter, Dictionary <string, object> pageState) { if (navigationParameter is Project) { Project projet = navigationParameter as Project; Messenger.Default.Send(projet); } else if (navigationParameter is VisualGenericItem) { VisualGenericItem conference = navigationParameter as VisualGenericItem; Messenger.Default.Send(conference.Id); } }
/// <summary> /// Map a member to an generic item /// </summary> /// <param name="element">Member to map</param> /// <returns>Corresponding generic item</returns> public VisualGenericItem Map(Member element) { var item = new VisualGenericItem { Id = element.Id, Title = string.Format("{0} {1}", element.FirstName, element.LastName), Subtitle = string.Format("{0}, {1}", element.Campus.Place, element.Status), ImageUrl = element.ImageUrl, Type = element.GetType().Name }; return(item); }
/// <summary> /// Open the selected item in the related details page /// </summary> /// <param name="item">Item to display</param> private void GoToDetailsPage(VisualGenericItem item) { IDictionary <string, Func <Type> > pages = new Dictionary <string, Func <Type> > { { "News", () => typeof(NewsDetailsPage) }, { "Member", () => typeof(MemberDetailsPage) }, { "Project", () => typeof(ProjectDetailsPage) }, { "Conference", () => typeof(ConferenceDetailsPage) }, { "Show", () => typeof(ShowDetailsPage) } }; Type type = pages[item.Type](); Frame.Navigate(type, item); }
/// <summary> /// Raised when the user loads or resumes the page /// Get informations from the model /// Register to the MVVM Light Messenger /// </summary> /// <param name="navigationParameter">Passed navigation parameters</param> /// <param name="pageState">Contains saved informations before the page was suspended</param> protected override void LoadState(object navigationParameter, Dictionary <String, Object> pageState) { if (navigationParameter is Member) { Member member = navigationParameter as Member; Messenger.Default.Send(member); } else if (navigationParameter is VisualGenericItem) { VisualGenericItem member = navigationParameter as VisualGenericItem; Messenger.Default.Send(member.Id); } // Register to the MVVM Light Messenger Messenger.Default.Register <Uri>(this, OpenWebBrowser); }
/// <summary> /// Show the details page according the type of the element (news, conference, member or show) /// </summary> /// <param name="item">Item to show. Can be a news, a conference, a member or a show</param> private void ShowDetailsPage(VisualGenericItem item) { if (item != null) { if (App.IsInternetAvailable) { string url = string.Format("/{0}Page.xaml?Id={1}", item.Type, item.Id); Uri uri = new Uri(url, UriKind.Relative); NavigationService.Navigate(uri); } else { MessageBox.Show(AppResources.MSG_CHECK_NETWORK); } } }
/// <summary> /// Raised when the user loads or resumes the page /// </summary> /// <param name="navigationParameter">Passed navigation parameters</param> /// <param name="pageState">Contains saved informations before the page was suspended</param> protected override void LoadState(object navigationParameter, Dictionary <string, object> pageState) { if (navigationParameter is Show) { Show salon = navigationParameter as Show; Messenger.Default.Send(salon); } else if (navigationParameter is VisualGenericItem) { VisualGenericItem salon = navigationParameter as VisualGenericItem; Messenger.Default.Send(salon.Id); } // Register to the Share event DataTransferManager.GetForCurrentView().DataRequested += ShowDetailsPage_DataRequested; // Register to the MVVM Light Messenger Messenger.Default.Register <PinnableObject>(this, Pin); Messenger.Default.Register <ShareableObject>(this, Share); Messenger.Default.Register <Uri>(this, OpenWebBrowser); }
/// <summary> /// Raised when the user loads or resumes the page /// </summary> /// <param name="navigationParameter">Passed navigation parameters</param> /// <param name="pageState">Contains saved informations before the page was suspended</param> protected override void LoadState(object navigationParameter, Dictionary <string, object> pageState) { // Display the conference or load it from the model if (navigationParameter is Conference) { Conference conference = navigationParameter as Conference; Messenger.Default.Send(conference); } else if (navigationParameter is VisualGenericItem) { VisualGenericItem conference = navigationParameter as VisualGenericItem; Messenger.Default.Send(conference.Id); } // Register to the Share event DataTransferManager.GetForCurrentView().DataRequested += ConferencesDetailsPage_DataRequested; // Register to the MVVM Light Messenger Messenger.Default.Register <PinnableObject>(this, Pin); Messenger.Default.Register <ShareableObject>(this, Share); Messenger.Default.Register <Uri>(this, OpenWebBrowser); }
/// <summary> /// Informs the UI to show the details page in terms of the passed element /// </summary> /// <param name="item">Element</param> private void GoToDetailsPage(VisualGenericItem item) { Messenger.Default.Send(item); }