protected override void OnRestoreState(ParametersCollection state) { _backStack = new Stack <PageContentState>(state.GetValueOrDefault(BACK_STACK_KEY, Enumerable.Empty <PageContentState>())); _forwardStack = new Stack <PageContentState>(state.GetValueOrDefault(FORWARD_STACK_KEY, Enumerable.Empty <PageContentState>())); _intermediateState = state.GetValueOrDefault(INTERMEDIATE_PAGESTATE_KEY, default(PageContentState)); base.OnRestoreState(state); RaiseHistoryChanged(); }
private PageContentState GetCurrentPageContentState() { // we check if an intermediate state is available if (_intermediateState != null) { var _state = _intermediateState; _intermediateState = null; // reset it return(_state); } // we check the page has a url if (string.IsNullOrEmpty(this.Url)) { return(null); } // we also add return(new PageContentState(this.Url, this.CurrentNavigationRequest != null ? this.CurrentNavigationRequest.SiteArea : null, this.Title, (CurrentNavigationStateSupporter == null ? null : CurrentNavigationStateSupporter.SaveState()), (CurrentNavigationViewStateSupporter == null) ? null : CurrentNavigationViewStateSupporter.SaveState())); }