private void RefreshAppViewBackButtonVisibility(NavigationServiceBase sender) { if (sender == null) { throw new ArgumentNullException("sender"); } if (((CrystalApplication)CrystalApplication.Current).Options.HandleBackButtonForTopLevelNavigation) { SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility = sender.CanGoBackward ? AppViewBackButtonVisibility.Visible : AppViewBackButtonVisibility.Collapsed; } }
/// <summary> /// Registers the NavigationService with the NavigationManager. /// </summary> /// <param name="service">The NavigationService to be registered.</param> internal void RegisterNavigationService(NavigationServiceBase service) { //Null check. if (service == null) { throw new ArgumentNullException("service"); } //Check if the user is trying to register a top-level Navigation Service. if (RootNavigationService != null && service.NavigationLevel == FrameLevel.One) { throw new Exception("There can only be one level-one navigation service."); } //If it isn't already in the list, add it. if (!navigationServices.Contains(service)) { navigationServices.Add(service); } }
public void RegisterCustomNavigationService(NavigationServiceBase service, FrameLevel frameLevel = FrameLevel.Two) { //Check if the user is trying to register a top-level Navigation Service. if (RootNavigationService != null && frameLevel == FrameLevel.One) { throw new Exception("There can only be one level-one navigation service."); } //If it isn't already in the list, add it. if (navigationServices.Any(x => x.NavigationLevel == frameLevel)) { throw new Exception(); } if (service == null) { throw new ArgumentNullException(nameof(service)); } service.NavigationLevel = frameLevel; service.NavigationManager = this; navigationServices.Add(service); }