/// <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="pageState">An empty dictionary to be populated with serializable state.</param> protected virtual void SaveState(Dictionary <String, Object> pageState) { if (this.DataContext != null && this.DataContext is IStateAware) { IStateAware state = (IStateAware)this.DataContext; state.SaveState(pageState); } }
/// <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 virtual void LoadState(Object navigationParameter, Dictionary <String, Object> pageState) { if (this.DataContext != null && this.DataContext is IStateAware) { IStateAware state = (IStateAware)this.DataContext; state.LoadState(navigationParameter, pageState); } }
private void Widgets_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) { foreach (IWidget widget in e.NewItems) { IStateAware stateAware = widget as IStateAware; if (stateAware != null) { stateAware.OnResume(); } } }
private void OnNavigationStart(object sender, NavigationEventArgs e) { if (e.SourceDescriptor.ViewName == "WidgetView") { foreach (IWidget widget in Target.Widgets) { IStateAware stateAware = widget as IStateAware; if (stateAware != null) { stateAware.OnStop(); } } } }
private void OnNavigationCompleted(object sender, NavigationEventArgs e) { if (e.TargetDescriptor.ViewName == "WidgetView") { foreach (IWidget widget in Target.Widgets) { IStateAware stateAware = widget as IStateAware; if (stateAware != null) { stateAware.OnResume(); } } } }