/// <summary> /// 使用在导航过程中传递的内容填充页。在从以前的会话 /// 重新创建页时,也会提供任何已保存状态。 /// </summary> /// <param name="sender"> /// 事件的来源; 通常为 <see cref="NavigationHelper"/> /// </param> /// <param name="e">事件数据,其中既提供在最初请求此页时传递给 /// <see cref="Frame.Navigate(Type, Object)"/> 的导航参数,又提供 /// 此页在以前会话期间保留的状态的 /// 字典。 首次访问页面时,该状态将为 null。</param> private async void navigationHelper_LoadState(object sender, LoadStateEventArgs e) { // TODO: 创建适用于问题域的合适数据模型以替换示例数据 var group = await SampleDataSource.GetGroupAsync((String)e.NavigationParameter); this.DefaultViewModel["Group"] = group; this.DefaultViewModel["Items"] = group.Items; }
/// <summary> /// 使用在导航过程中传递的内容填充页。 在从以前的会话 /// 重新创建页时,也会提供任何已保存状态。 /// </summary> /// <param name="sender"> /// 事件的来源; 通常为 <see cref="NavigationHelper"/> /// </param> /// <param name="e">事件数据,其中既提供在最初请求此页时传递给 /// <see cref="Frame.Navigate(Type, Object)"/> 的导航参数,又提供 /// 此页在以前会话期间保留的状态的 /// 字典。 首次访问页面时,该状态将为 null。</param> private async void navigationHelper_LoadState(object sender, LoadStateEventArgs e) { // Featured recipe var favorites = await SampleDataSource.GetFavoriteRecipesAsync(1); this.DefaultViewModel["Section1Item"] = favorites.SingleOrDefault(); // International Cuisine var groups = await SampleDataSource.GetGroupsAsync(); this.DefaultViewModel["Section2Items"] = groups; // Top rated var topRated = await SampleDataSource.GetTopRatedRecipesAsync(6); this.DefaultViewModel["Section3Items"] = topRated; this.DefaultViewModel["ZoomedOutList"] = this.GetSectionList(); var sampleDataGroups = await DataSource.GetGroupsAsync(); this.DefaultViewModel["Items"] = sampleDataGroups; }
/// <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="sender"> /// The source of the event; typically <see cref="NavigationHelper"/> /// </param> /// <param name="e">Event data that provides both the navigation parameter passed to /// <see cref="Frame.Navigate(Type, Object)"/> when this page was initially requested and /// a dictionary of state preserved by this page during an earlier /// session. The state will be null the first time a page is visited.</param> private async void navigationHelper_LoadState(object sender, LoadStateEventArgs e) { var group = await DataSource.GetGroupAsync((String)e.NavigationParameter); this.DefaultViewModel["Group"] = group; if (e.PageState == null) { // When this is a new page, select the first item automatically unless logical page // navigation is being used (see the logical page navigation #region below.) if (!this.UsingLogicalPageNavigation() && this.itemsViewSource.View != null) { this.itemsViewSource.View.MoveCurrentToFirst(); } } else { // Restore the previously saved state associated with this page if (e.PageState.ContainsKey("SelectedItem") && this.itemsViewSource.View != null) { var selectedItem = await DataSource.GetGroupAsync((String)e.PageState["SelectedItem"]); this.itemsViewSource.View.MoveCurrentTo(selectedItem); } } }