private void OnBackButtonPressed(Page page, CancelEventArgs args) { if (CurrentContent != page) return; var eventArgs = new NavigatingCancelEventArgs(null, NavigationMode.Back, null); RaiseNavigating(eventArgs); args.Cancel = eventArgs.Cancel; if (!args.Cancel && _rootPage.Navigation.NavigationStack.Count == 1 && _rootPage.Navigation.NavigationStack[0] == page) RaiseNavigated(null, null, NavigationMode.Back); }
private void OnBackButtonPressed(Page page, CancelEventArgs args) { if (CurrentContent != page) return; var isCancelable = CanGoBack || (_isRootFrame && XamarinFormsExtensions.SendBackButtonPressed != null); if (isCancelable) { var eventArgs = new NavigatingCancelEventArgs(null, NavigationMode.Back, null, true, true); RaiseNavigating(eventArgs); args.Cancel = eventArgs.Cancel; } if (isCancelable && args.Cancel) return; if (!CanGoBack) RaiseNavigated(null, null, NavigationMode.Back); }
private bool RaiseNavigating(NavigatingCancelEventArgs args) { EventHandler<INavigationService, NavigatingCancelEventArgsBase> handler = Navigating; if (handler == null) return true; handler(this, args); return !args.Cancel; }
private void OnBackButtonPressed(Page page, CancelEventArgs args) { if (CurrentContent != page) return; bool isCancelable = _rootPage.Navigation.NavigationStack.Count > 1 || XamarinFormsExtensions.SendBackButtonPressed != null; var eventArgs = new NavigatingCancelEventArgs(null, NavigationMode.Back, null, isCancelable, true); RaiseNavigating(eventArgs); if (!isCancelable) eventArgs.Cancel = false; args.Cancel = eventArgs.Cancel; if (!args.Cancel && _rootPage.Navigation.NavigationStack.Count == 1 && _rootPage.Navigation.NavigationStack[0] == page) RaiseNavigated(null, null, NavigationMode.Back); }