コード例 #1
0
        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();
        }
コード例 #2
0
        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()));
        }