Exemplo n.º 1
0
        public bool RestoreSavedNavigation()
        {
            DebugWrite($"Frame: {FrameFacade.FrameId}");

            try
            {
                var state = FrameFacade.PageStateSettingsService(GetType());
                if (state == null || !state.Exists("CurrentPageType"))
                {
                    return(false);
                }

                FrameFacade.CurrentPageType  = Type.GetType(state.Read <string>("CurrentPageType"));
                FrameFacade.CurrentPageParam = state.Read <object>("CurrentPageParam");
                FrameFacade.SetNavigationState(state.Read <string>("NavigateState"));
                NavigateTo(NavigationMode.Refresh, FrameFacade.CurrentPageParam);
                while (Frame.Content == null)
                {
                    Task.Yield().GetAwaiter().GetResult();
                }
                AfterRestoreSavedNavigation?.Invoke(this, FrameFacade.CurrentPageType);
                return(true);
            }
            catch { return(false); }
        }
Exemplo n.º 2
0
        public async Task <bool> LoadAsync()
        {
            DebugWrite($"Frame: {FrameFacadeInternal.FrameId}");

            try
            {
                var state = FrameFacadeInternal.PageStateSettingsService(GetType().ToString());
                if (state == null || !state.Exists("CurrentPageType"))
                {
                    return(false);
                }

                FrameFacadeInternal.CurrentPageType  = Type.GetType(state.Read <string>("CurrentPageType"));
                FrameFacadeInternal.CurrentPageParam = state.Read <object>("CurrentPageParam");
                FrameFacadeInternal.NavigationService.NavigationState = state.Read <string>("NavigateState");

                await NavigateToAsync(NavigationMode.Refresh, FrameFacadeInternal.CurrentPageParam);

                while (FrameFacadeInternal.Frame.Content == null)
                {
                    await Task.Delay(1);
                }
                AfterRestoreSavedNavigation?.Invoke(this, FrameFacadeInternal.CurrentPageType);
                return(true);
            }
            catch { return(false); }
        }
Exemplo n.º 3
0
        public bool RestoreSavedNavigation()
        {
            try
            {
                var state = FrameFacade.PageStateContainer(GetType());
                if (state == null || !state.Any() || !state.ContainsKey("CurrentPageType"))
                {
                    return(false);
                }

                FrameFacade.CurrentPageType  = Type.GetType(state["CurrentPageType"].ToString());
                FrameFacade.CurrentPageParam = DeserializePageParam(state["CurrentPageParam"]?.ToString());
                FrameFacade.SetNavigationState(state["NavigateState"]?.ToString());
                NavigateTo(NavigationMode.Refresh, FrameFacade.CurrentPageParam);
                while (Frame.Content == null)
                {
                    Task.Yield().GetAwaiter().GetResult();
                }
                AfterRestoreSavedNavigation?.Invoke(this, FrameFacade.CurrentPageType);
                return(true);
            }
            catch
            {
                return(false);
            }
        }
Exemplo n.º 4
0
 public bool RestoreSavedNavigation()
 {
     try
     {
         var state = FrameFacade.PageStateContainer(GetType());
         FrameFacade.CurrentPageType  = Type.GetType(state["CurrentPageType"].ToString());
         FrameFacade.CurrentPageParam = state["CurrentPageParam"];
         FrameFacade.SetNavigationState(state["NavigateState"].ToString());
         NavigateTo(NavigationMode.Refresh, FrameFacade.CurrentPageParam);
         while (Frame.Content == null) /* wait */ } {
         AfterRestoreSavedNavigation?.Invoke(this, EventArgs.Empty);
         return(true);
 }
        /// <summary>
        /// Restores the saved navigation state.
        /// </summary>
        /// <returns>Returns True for success, else False.</returns>
        public bool RestoreSavedNavigation()
        {
            try
            {
                var state = FrameFacade.GetPageStateContainer(GetType());
                if (state == null || !state.Any() || !state.ContainsKey(CURRENT_PAGE_TYPE_KEY))
                {
                    return(false);
                }

                string currentPageType       = state[CURRENT_PAGE_TYPE_KEY].ToString();
                Type   pageTypeOfAppAssembly = Type.GetType(string.Format("{0}, {1}", currentPageType, UniversalApp.AppAssemblyName));

                FrameFacade.CurrentPageType  = pageTypeOfAppAssembly;
                FrameFacade.CurrentPageParam = state[CURRENT_PAGE_PARAM_KEY];
                FrameFacade.SetNavigationState(state[NAVIGATE_STATE_KEY].ToString());

                while (FrameFacade.Frame.Content == null) /* wait */ } {
                AfterRestoreSavedNavigation?.Invoke(this, FrameFacade.CurrentPageType);
                return(true);
        }
Exemplo n.º 6
0
 void RaiseAfterRestoreSavedNavigation() => AfterRestoreSavedNavigation?.Invoke(this, CurrentPageType);