/// <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 pushing /// </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="beforePushStrategy"><see cref="IPushStrategy"/> that will be invoked before page is pushed to the navigation stack.</param> public NavigationService(INavigation navigation, IPageLocator pageLocator, IPushStrategy beforePushStrategy) : this(navigation, pageLocator, new DoNothingStrategy(), beforePushStrategy) { }