【问题标题】:Remembering Position of LongListSelector记住 LongListSelector 的位置
【发布时间】:2011-05-04 02:22:52
【问题描述】:
我正在开发一个 Windows Phone 7 (WP7) 应用程序,并且我正在使用 LongListSelector 控件作为列表。当用户点击其中一个项目时,我的事件处理程序导航到所选项目的新页面。但是,当用户单击后退按钮返回上一页时,LongListSelector 的位置与原来不同。有谁知道如何记住选择器的位置并在返回时恢复该位置?
【问题讨论】:
标签:
windows-phone-7
silverlight-toolkit
【解决方案1】:
当您处理SelectionChanged 事件时,您可以将SelectedItem(我假设您已经在检索它以确定新页面)保存到页面属性。然后在页面的OnNavigatedTo 事件中,如果该项目不为空,那么您可以使用ScrollTo 方法。像这样的东西(lls 是你的 longlistselector):
private object previousItem = null;
private void lls_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
object previousItem = lls.SelectedItem;
//Page Navigation Magic
}
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
base.OnNavigatedTo(e);
if (previousItem != null)
lls.ScrollTo(previousItem);
}