protected override async void OnNavigatedTo(NavigationEventArgs eventArgs) { base.OnNavigatedTo(eventArgs); // Add item jumping handler Window.Current.CoreWindow.CharacterReceived += Page_CharacterReceived; navigationArguments = (NavigationArguments)eventArgs.Parameter; ParentShellPageInstance = navigationArguments.AssociatedTabInstance; IsItemSelected = false; FolderSettings.LayoutModeChangeRequested += FolderSettings_LayoutModeChangeRequested; ParentShellPageInstance.FilesystemViewModel.IsFolderEmptyTextDisplayed = false; FolderSettings.SetLayoutInformation(); if (!navigationArguments.IsSearchResultPage) { ParentShellPageInstance.NavigationToolbar.CanRefresh = true; string previousDir = ParentShellPageInstance.FilesystemViewModel.WorkingDirectory; await ParentShellPageInstance.FilesystemViewModel.SetWorkingDirectoryAsync(navigationArguments.NavPathParam); // pathRoot will be empty on recycle bin path var workingDir = ParentShellPageInstance.FilesystemViewModel.WorkingDirectory; string pathRoot = Path.GetPathRoot(workingDir); if (string.IsNullOrEmpty(pathRoot) || workingDir == pathRoot || workingDir.StartsWith(AppSettings.RecycleBinPath)) // Can't go up from recycle bin { ParentShellPageInstance.NavigationToolbar.CanNavigateToParent = false; } else { ParentShellPageInstance.NavigationToolbar.CanNavigateToParent = true; } ParentShellPageInstance.InstanceViewModel.IsPageTypeRecycleBin = workingDir.StartsWith(App.AppSettings.RecycleBinPath); ParentShellPageInstance.InstanceViewModel.IsPageTypeMtpDevice = workingDir.StartsWith("\\\\?\\"); ParentShellPageInstance.InstanceViewModel.IsPageTypeSearchResults = false; ParentShellPageInstance.NavigationToolbar.PathControlDisplayText = navigationArguments.NavPathParam; if (!navigationArguments.IsLayoutSwitch) { ParentShellPageInstance.FilesystemViewModel.RefreshItems(previousDir); } else { ParentShellPageInstance.NavigationToolbar.CanGoForward = false; } } else { ParentShellPageInstance.NavigationToolbar.CanRefresh = false; ParentShellPageInstance.NavigationToolbar.CanGoForward = false; ParentShellPageInstance.NavigationToolbar.CanGoBack = true; // Impose no artificial restrictions on back navigation. Even in a search results page. ParentShellPageInstance.NavigationToolbar.CanNavigateToParent = false; ParentShellPageInstance.InstanceViewModel.IsPageTypeRecycleBin = false; ParentShellPageInstance.InstanceViewModel.IsPageTypeMtpDevice = false; ParentShellPageInstance.InstanceViewModel.IsPageTypeSearchResults = true; if (!navigationArguments.IsLayoutSwitch) { await ParentShellPageInstance.FilesystemViewModel.AddSearchResultsToCollection(navigationArguments.SearchResults, navigationArguments.SearchPathParam); } } ParentShellPageInstance.InstanceViewModel.IsPageTypeNotHome = true; // show controls that were hidden on the home page FolderSettings.IsLayoutModeChanging = false; cachedNewContextMenuEntries = await RegistryHelper.GetNewContextMenuEntries(); FocusFileList(); // Set focus on layout specific file list control }
protected override async void OnNavigatedTo(NavigationEventArgs eventArgs) { base.OnNavigatedTo(eventArgs); // Add item jumping handler Window.Current.CoreWindow.CharacterReceived += Page_CharacterReceived; navigationArguments = (NavigationArguments)eventArgs.Parameter; ParentShellPageInstance = navigationArguments.AssociatedTabInstance; IsItemSelected = false; FolderSettings.LayoutModeChangeRequested += FolderSettings_LayoutModeChangeRequested; ParentShellPageInstance.FilesystemViewModel.IsFolderEmptyTextDisplayed = false; FolderSettings.SetLayoutInformation(); if (!navigationArguments.IsSearchResultPage) { ParentShellPageInstance.NavigationToolbar.CanRefresh = true; string previousDir = ParentShellPageInstance.FilesystemViewModel.WorkingDirectory; await ParentShellPageInstance.FilesystemViewModel.SetWorkingDirectoryAsync(navigationArguments.NavPathParam); // pathRoot will be empty on recycle bin path var workingDir = ParentShellPageInstance.FilesystemViewModel.WorkingDirectory; string pathRoot = GetPathRoot(workingDir); if (string.IsNullOrEmpty(pathRoot) || NormalizePath(workingDir) == NormalizePath(pathRoot) || workingDir.StartsWith(AppSettings.RecycleBinPath)) // Can't go up from recycle bin { ParentShellPageInstance.NavigationToolbar.CanNavigateToParent = false; } else { ParentShellPageInstance.NavigationToolbar.CanNavigateToParent = true; } ParentShellPageInstance.InstanceViewModel.IsPageTypeRecycleBin = workingDir.StartsWith(App.AppSettings.RecycleBinPath); ParentShellPageInstance.InstanceViewModel.IsPageTypeMtpDevice = workingDir.StartsWith("\\\\?\\"); ParentShellPageInstance.InstanceViewModel.IsPageTypeSearchResults = false; ParentShellPageInstance.NavigationToolbar.PathControlDisplayText = navigationArguments.NavPathParam; if (!navigationArguments.IsLayoutSwitch) { ParentShellPageInstance.FilesystemViewModel.RefreshItems(previousDir); } else { ParentShellPageInstance.NavigationToolbar.CanGoForward = false; } } else { ParentShellPageInstance.NavigationToolbar.CanRefresh = false; ParentShellPageInstance.NavigationToolbar.CanGoForward = false; ParentShellPageInstance.NavigationToolbar.CanGoBack = true; // Impose no artificial restrictions on back navigation. Even in a search results page. ParentShellPageInstance.NavigationToolbar.CanNavigateToParent = false; ParentShellPageInstance.InstanceViewModel.IsPageTypeRecycleBin = false; ParentShellPageInstance.InstanceViewModel.IsPageTypeMtpDevice = false; ParentShellPageInstance.InstanceViewModel.IsPageTypeSearchResults = true; if (!navigationArguments.IsLayoutSwitch) { await ParentShellPageInstance.FilesystemViewModel.AddSearchResultsToCollection(navigationArguments.SearchResults, navigationArguments.SearchPathParam); ParentShellPageInstance.UpdatePathUIToWorkingDirectory(null, $"{"SearchPagePathBoxOverrideText".GetLocalized()} {navigationArguments.SearchPathParam}"); } } ParentShellPageInstance.InstanceViewModel.IsPageTypeNotHome = true; // show controls that were hidden on the home page FolderSettings.IsLayoutModeChanging = false; cachedNewContextMenuEntries = await RegistryHelper.GetNewContextMenuEntries(); FocusFileList(); // Set focus on layout specific file list control try { if (navigationArguments.SelectItems != null && navigationArguments.SelectItems.Count() > 0) { List <ListedItem> liItemsToSelect = new List <ListedItem>(); foreach (string item in navigationArguments.SelectItems) { liItemsToSelect.Add(ParentShellPageInstance.FilesystemViewModel.FilesAndFolders.Where((li) => li.ItemName == item).First()); } SetSelectedItemsOnUi(liItemsToSelect); } } catch (Exception e) { } }