public async Task<bool> GoBackToAsync(PageDescription page) { var index = pages.IndexOf(page); return await GoBackToAsync(index); }
private async Task<bool> CallOnNavigatingFrom(PageDescription description, NavigationMode mode) { var page = description.GetPage(this); var args = new NavigatingCancelEventArgs(); args.Content = page; args.SourcePageType = description.Type; args.NavigationMode = mode; await page.InternalOnNavigatingFrom(args); return args.Cancel; }
private void CallOnNavigatedTo(PageDescription description, NavigationMode mode) { var page = description.GetPage(this); var args = new NavigationEventArgs(); args.Content = page; args.SourcePageType = description.Type; args.Parameter = description.Parameter; args.NavigationMode = mode; page.InternalOnNavigatedTo(args); if (Navigated != null) Navigated(this, args); }
private void NavigateInternal(Type type, object parameter) { var oldPage = CurrentPage; RemoveAllAfterCurrent(); var newPage = new PageDescription(type, parameter); pages.Add(newPage); currentIndex++; Content = newPage.GetPage(this); if (oldPage != null) CallOnNavigatedFrom(oldPage, NavigationMode.Forward); CallOnNavigatedTo(newPage, NavigationMode.New); }