protected override void OnNavigatedTo(NavigationEventArgs e) { base.OnNavigatedTo(e); if (e.NavigationMode == NavigationMode.New) { var selectedItem = new BaseItemDto(); if(App.SelectedItem == null) { string name, id; if (NavigationContext.QueryString.TryGetValue("name", out name) && NavigationContext.QueryString.TryGetValue("id", out id)) { selectedItem = new BaseItemDto { Name = name, Id = id, Type = "FolderCollection" }; } } if (App.SelectedItem is BaseItemDto) { selectedItem = (BaseItemDto) App.SelectedItem; } DataContext = new FolderViewModel(ViewModelLocator.NavigationService, ViewModelLocator.ConnectionManager) { SelectedFolder = selectedItem }; } }
protected override void OnNavigatedTo(NavigationEventArgs e) { base.OnNavigatedTo(e); if(e.NavigationMode == NavigationMode.Back) { DataContext = History.Current.GetLastItem<FolderViewModel>(GetType()); App.SelectedItem = ((FolderViewModel) DataContext).SelectedFolder; } else if(e.NavigationMode == NavigationMode.New) { if (App.SelectedItem is BaseItemDto) { DataContext = new FolderViewModel(ViewModelLocator.NavigationService, ViewModelLocator.ConnectionManager) { SelectedFolder = (BaseItemDto) App.SelectedItem }; } else if (App.SelectedItem is BaseItemPerson) { DataContext = new FolderViewModel(ViewModelLocator.NavigationService, ViewModelLocator.ConnectionManager) { SelectedPerson = (BaseItemPerson)App.SelectedItem }; } } }