/// <summary> /// Constructor with actions before pop and push /// </summary> /// <param name="navigation"><see cref="INavigation"/> property from your <see cref="NavigationPage"/>.</param> /// <param name="pageLocator"><see cref="IPageLocator"/> that you created.</param> /// <param name="beforePopStrategy"> /// Strategy that will be invoked every time before <see cref="Page"/> will be taken from navigation stack. /// Passing <see cref="Page"/> object that will be removed. /// </param> /// <param name="beforePushStrategy"> /// Strategy that will be invoked every time before <see cref="Page"/> will be pushed on top of the navigation stack. /// Passing <see cref="Page"/> object that will be added. /// </param> public NavigationService(INavigation navigation, IPageLocator pageLocator, IPopStrategy beforePopStrategy, IPushStrategy beforePushStrategy) { _navigationParameters = new Dictionary <string, object>(); _cancellationTokenSource = new CancellationTokenSource(); _pageNavigation = navigation; _pageLocator = pageLocator; _popStrategy = beforePopStrategy; _pushStrategy = beforePushStrategy; }
/// <summary> /// Constructor with strategy for popping /// </summary> /// <param name="navigation"><see cref="INavigation"/> property from your <see cref="NavigationPage"/>.</param> /// <param name="pageLocator"><see cref="IPageLocator"/> that you created.</param> /// <param name="beforePopStrategy"><see cref="IPopStrategy"/> that will be invoked before page is removed from the navigation stack.</param> public NavigationService(INavigation navigation, IPageLocator pageLocator, IPopStrategy beforePopStrategy) : this(navigation, pageLocator, beforePopStrategy, new DoNothingStrategy()) { }