protected override void OnNavigatedTo(NavigationEventArgs e) { base.OnNavigatedTo(e); if (e.Parameter != null) Item = ItemViewModel.FromItem(ItemsDataSource.GetItemById((int)e.Parameter)); else throw new InvalidOperationException(); 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.ItemId, masterPageEntry.NavigationTransitionInfo ); backStack.Add(modifiedEntry); } // Register for hardware and software back request from the system SystemNavigationManager systemNavigationManager = SystemNavigationManager.GetForCurrentView(); systemNavigationManager.BackRequested += DetailPage_BackRequested; systemNavigationManager.AppViewBackButtonVisibility = AppViewBackButtonVisibility.Visible; }
protected override void OnNavigatedTo(NavigationEventArgs e) { base.OnNavigatedTo(e); var items = MasterListView.ItemsSource as List<ItemViewModel>; if (items == null) { items = new List<ItemViewModel>(); foreach (var item in ItemsDataSource.GetAllItems()) { items.Add(ItemViewModel.FromItem(item)); } MasterListView.ItemsSource = items; } if (e.Parameter != null) { // Parameter is item ID var id = (int)e.Parameter; _lastSelectedItem = items.Where((item) => item.ItemId == 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(); }
public static ItemViewModel FromItem(Item item) { var viewModel = new ItemViewModel(); viewModel._itemId = item.Id; viewModel.DateCreated = item.DateCreated; viewModel.Title = item.Title; viewModel.Text = item.Text; return viewModel; }
private void MasterListView_ItemClick(object sender, ItemClickEventArgs e) { var clickedItem = (ItemViewModel)e.ClickedItem; _lastSelectedProduct = clickedItem; if (AdaptiveStates.CurrentState == NarrowState) { // Use "drill in" transition for navigating from master list to detail view Frame.Navigate(typeof(DetailPage), clickedItem.ItemId, new DrillInNavigationTransitionInfo()); } else { // Play a refresh animation when the user switches detail items. EnableContentTransitions(); } }
public static ItemViewModel FromItem(Product product) { var viewModel = new ItemViewModel { ItemId = product.Id, LowPrice = product.LowPrice, Title = product.Title, Brand = product.Brand, Units = new List<UnitViewModel> { } }; viewModel.Units = product.Units.OrderBy(p => p.Price) .Select(UnitViewModel.FromUnit).ToList(); var defUnit = viewModel.Units.First(); viewModel.LowPrice = defUnit.Price; return viewModel; }
protected override void OnNavigatedTo(NavigationEventArgs e) { base.OnNavigatedTo(e); var items = MasterListView.ItemsSource as List<ItemViewModel>; if (items == null) { items = ItemsDataSource.GetAllItems().Select(ItemViewModel.FromItem).ToList(); MasterListView.ItemsSource = items; } if (e.Parameter != null) { var id = (int)e.Parameter; _lastSelectedProduct = items.FirstOrDefault(item => item.ItemId == id); } UpdateForVisualState(AdaptiveStates.CurrentState); DisableContentTransitions(); }