/// <summary> /// Preserves state associated with this page in case the application is suspended or the /// page is discarded from the navigation cache. Values must conform to the serialization /// requirements of <see cref="SuspensionManager.SessionState"/>. /// </summary> /// <param name="sender">The source of the event; typically <see cref="NavigationHelper"/></param> /// <param name="e">Event data that provides an empty dictionary to be populated with /// serializable state.</param> protected override async void navigationHelper_SaveState(object sender, SaveStateEventArgs e) { if (this.subscription != null) { await App.Current.Client.Unsubscribe(this.subscription); this.subscription = null; } }
/// <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> protected override async void navigationHelper_LoadState(object sender, LoadStateEventArgs e) { var postId = e.NavigationParameter as String; this.subscription = await App.Current.Client.Subscribe("singlePost", postId); var post = App.Current.Client.GetCollection<Post>("posts").Single(x => x.Id == postId); this.viewModel = new PostViewModel() {Title = post.Title, Url = post.Url}; this.DataContext = this.viewModel; this.postToEdit = post; }
private async Task LoadData() { var newSubscription = await App.Current.Client.Subscribe("posts", new SubscribeParamters { Limit = this.limit, Sort = this.sort }); if (this.currentSubscription != null) { await App.Current.Client.Unsubscribe(this.currentSubscription); } this.currentSubscription = newSubscription; this.viewModel.ShowLoadMore = this.viewModel.Posts.Count >= this.limit; }