/// <summary> /// Populates the page with content passed during navigation. Any saved state is also /// provided when recreating a page from a prior session. /// </summary> /// <param name="navigationParameter"> /// The parameter value passed to /// <see cref="Frame.Navigate(Type, Object)" /> when this page was initially requested. /// </param> /// <param name="pageState"> /// A dictionary of state preserved by this page during an earlier /// session. This will be null the first time a page is visited. /// </param> protected override async void LoadState(Object navigationParameter, Dictionary<String, Object> pageState) { var r = navigationParameter as SearchResult; if (r != null) { r.ResetAssumptionSelections(); Result = r; //ShowResults(); return; } var query = navigationParameter as string; if (pageState != null && pageState.ContainsKey("result")) { Result = pageState["result"] as SearchResult; Result.ResetAssumptionSelections(); _history = pageState["history"] as Stack<SearchResult>; } else { Result = new SearchResult(query) {NumRows = (int) Math.Floor((Window.Current.Bounds.Height - 186) / 150)}; await Result.RunSearch(); _history.Push(new SearchResult(Result)); } ShowResults(); }
private void CustomGoBack(object sender, RoutedEventArgs e) { if (_history.Count > 1) { _history.Pop(); Result = _history.Peek(); Result.ResetAssumptionSelections(); _firstLoad = true; } else { Frame.GoBack(); } }