![](/img/trans.png)
[英]Windows Phone 8.1 override back button when message dialog is open
[英]How to make Windows phone 8.1 listview to open list last selecteditem after pressed windows phone back button?
我在列表视图中显示的图像上有列表。 当我单击列表视图项时,它将打开另一个页面,其中显示了当前图片的较大版本。 当我按下Windows Phone的后退按钮时,我希望列表视图滚动到之前选择的项目。
这是我保存lsitview.selectedindex的方法:
private void NavigationHelper_SaveState(object sender, SaveStateEventArgs e)
{
e.PageState.Add("id", listview.SelectedIndex);
}
这就是我尝试设置ListView的方式:
private void NavigationHelper_LoadState(object sender, LoadStateEventArgs e)
{
if (null != e.PageState && e.PageState.ContainsKey("id"))
{
int i = (int)e.PageState["id"];
listview.ScrollIntoView(listview.Items[i]);
System.Diagnostics.Debug.WriteLine(listview.Items.Count);
}
}
我也这样尝试过,但这行不通吗?
private void listview_Loaded(object sender, RoutedEventArgs e)
{
listview.ScrollIntoView(listview.Items[i])
}
但是当我像这样向我的lisview页面添加普通按钮时:
private void Button_Click(object sender, RoutedEventArgs e)
{
listview.ScrollIntoView(listview.Items[i]);
}
单击按钮后滚动到选定的项目。 我如何不使用按钮就能使它工作,以便lisview自动滚动最后选择的项目?
`
如果我理解正确,当用户浏览图片并返回时,ListView滚动到顶部,对吗? 在这种情况下,这是因为页面实例未保留在缓存中,因此当您按下“后退”按钮时它将再次加载。 您可以通过将NavigationCacheMode设置为Enabled来停止此操作:
<Page x:Class="App.YourClass"
NavigationCacheMode="Enabled"
</Page>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.