Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>The <code>LongListSelector</code> is using a <code>ScrollViewer</code> internally (apparently since the Aug 2011 release). This fact can be used to restore the position of the list after tombstoning by following the example given at <a href="http://damianblog.com/2011/01/21/wp7-scroll-pivot/" rel="nofollow">http://damianblog.com/2011/01/21/wp7-scroll-pivot/</a> for the pivot controller.</p> <p>In <code>OnNavigatedFrom()</code> remember the scroll offset:</p> <pre class="lang-cs prettyprint-override"><code> private bool _newPageInstance = true; private double _scollOffset = double.NaN; protected override void OnNavigatedFrom(System.Windows.Navigation.NavigationEventArgs e) { base.OnNavigatedFrom(e); var scrollViewer = FindScrollViewer(LongList); State["scrollViewer.VerticalOffset"] = scrollViewer.VerticalOffset; State["PreservingPageState"] = true; _newPageInstance = false; } private static ScrollViewer FindScrollViewer(DependencyObject parent) { var childCount = VisualTreeHelper.GetChildrenCount(parent); for (var i = 0; i &lt; childCount; i++) { var elt = VisualTreeHelper.GetChild(parent, i); if (elt is ScrollViewer) return (ScrollViewer)elt; var result = FindScrollViewer(elt); if (result != null) return result; } return null; } </code></pre> <p>And restore it in <code>OnNavigatedTo()</code> if the app have been tombstoned:</p> <pre class="lang-cs prettyprint-override"><code> protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e) { base.OnNavigatedTo(e); if (!_newPageInstance || !State.ContainsKey("PreservingPageState")) { return; } _scollOffset = (double)State["scrollViewer.VerticalOffset"]; } private void LongList_Loaded(object sender, RoutedEventArgs e) { if (double.IsNaN(_scollOffset)) return; var longListSelector = (LongListSelector)sender; var scrollViewer = FindScrollViewer(longListSelector); scrollViewer.ScrollToVerticalOffset(_scollOffset); _scollOffset = double.NaN; } </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload