예제 #1
0
        /// <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();
        }
예제 #2
0
 private void CustomGoBack(object sender, RoutedEventArgs e)
 {
     if (_history.Count > 1)
     {
         _history.Pop();
         Result = _history.Peek();
         Result.ResetAssumptionSelections();
         _firstLoad = true;
     }
     else
     {
         Frame.GoBack();
     }
 }