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); } }
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); } }
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); } }
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); }
void RaiseAfterRestoreSavedNavigation() => AfterRestoreSavedNavigation?.Invoke(this, CurrentPageType);