protected override void OnNavigatedTo(NavigationEventArgs e) { base.OnNavigatedTo(e); // Parameter is item ID Item = new ItemViewModel(ItemsDataSource.GetItemById((int)e.Parameter)); //UpdateMap(); var backStack = Frame.BackStack; var backStackCount = backStack.Count; if (backStackCount > 0) { var masterPageEntry = backStack[backStackCount - 1]; backStack.RemoveAt(backStackCount - 1); // Doctor the navigation parameter for the master page so it // will show the correct item in the side-by-side view. var modifiedEntry = new PageStackEntry( masterPageEntry.SourcePageType, Item.Item.Number, masterPageEntry.NavigationTransitionInfo ); backStack.Add(modifiedEntry); } // Register for hardware and software back request from the system SystemNavigationManager.GetForCurrentView().BackRequested += DetailPage_BackRequested; }
protected async override void OnNavigatedTo(NavigationEventArgs e) { base.OnNavigatedTo(e); var items = MasterListView.ItemsSource as List<ItemViewModel>; if (items == null) { items = new List<ItemViewModel>(); var ds = await ItemsDataSource.GetAllItems(); foreach (var item in ds) { items.Add(new ItemViewModel(item)); } MasterListView.ItemsSource = items; } if (!string.IsNullOrEmpty(e.Parameter.ToString())) { // Parameter is item ID var id = (int)e.Parameter; _lastSelectedItem = items.Where((item) => item.Item.Number == id).FirstOrDefault(); } UpdateForVisualState(AdaptiveStates.CurrentState); // Don't play a content transition for first item load. // Sometimes, this content will be animated as part of the page transition. DisableContentTransitions(); }
protected override void OnNavigatedFrom(NavigationEventArgs e) { base.OnNavigatedFrom(e); this.Item = null; SystemNavigationManager.GetForCurrentView().BackRequested -= DetailPage_BackRequested; }
private void OnBackRequested() { // Page above us will be our master view. // Make sure we are using the "drill out" animation in this transition. this.Item = null; Frame.GoBack(new DrillInNavigationTransitionInfo()); }
private void MasterListView_ItemClick(object sender, ItemClickEventArgs e) { var clickedItem = (ItemViewModel)e.ClickedItem; _lastSelectedItem = clickedItem; UpdateMap(); if (AdaptiveStates.CurrentState == NarrowState) { // Use "drill in" transition for navigating from master list to detail view Frame.Navigate(typeof(DetailPage), clickedItem.Item.Number, new DrillInNavigationTransitionInfo()); } else { // Play a refresh animation when the user switches detail items. EnableContentTransitions(); } }