protected override void OnNavigatedTo(NavigationEventArgs e) { NavigationPage navPage = Window.Current.Content as NavigationPage; if (navPage.AppFrame.CanGoBack) { // If we have pages in our in-app backstack and have opted in to showing back, do so SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility = AppViewBackButtonVisibility.Visible; } else { // Remove the UI from the title bar if there are no pages in our in-app back stack SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility = AppViewBackButtonVisibility.Collapsed; } var navObj = e.Parameter as PlaceNavObject; if (navObj != null) { var viewModel = new PlaceDetailsPageViewModel(navObj.Id, navObj.Title, App.DataSource); DataContext = viewModel; var template = Resources["PlaceDetailsDataTemplate"] as DataTemplate; contentPresenter.ContentTemplate = template; base.OnNavigatedTo(e); return; } SetTemplate(e.Parameter as NodeViewModel); base.OnNavigatedTo(e); }
private void SetTemplate(CType type, NodeViewModel vm) { DataTemplate template = null; if (type == CType.Event) { var detailsViewModel = new EventDetailsPageViewModel(vm.Id, vm.Title, App.DataSource); DataContext = detailsViewModel; template = Resources["EventDetailsDataTemplate"] as DataTemplate; } if (type == CType.News) { var newsViewModel = new NewsDetailsPageViewModel(vm.Id, vm.Title, App.DataSource); DataContext = newsViewModel; template = Resources["NewsDetailsDataTemplate"] as DataTemplate; } if (type == CType.List) { var viewModel = new SelectionDetailsPageViewModel(vm.Id, vm.Title, App.DataSource); DataContext = viewModel; template = Resources["SelectionDetailsDataTemplate"] as DataTemplate; } if (type == CType.Place) { var viewModel = new PlaceDetailsPageViewModel(vm.Id, vm.Title, App.DataSource); DataContext = viewModel; template = Resources["PlaceDetailsDataTemplate"] as DataTemplate; } if (type == CType.Movie) { var viewModel = new MovieDetailsPageViewModel(vm.Id, vm.Title, App.DataSource); DataContext = viewModel; template = Resources["MovieDetailsDataTemplate"] as DataTemplate; } if (type == CType.ListItem) { var node = vm as SelectionDetailsNodeViewModel; if (node == null) { return; } var viewModel = new ListItemDetailsPageViewModel(node, App.DataSource); DataContext = viewModel; template = Resources["ListItemDetailsDataTemplate"] as DataTemplate; } contentPresenter.ContentTemplate = template; }