如何使 Windows phone 8.1 列表视图在按下 windows phone 后退按钮后打开列表最后一个选定项目?
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);
}
这就是我尝试设置列表视图的方式:
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>
我在列表视图中显示了图像列表。当我单击列表视图项目时,它会打开另一个页面,其中显示当前图片的更大版本。当我按 Windows phone 后退按钮时,我希望列表视图滚动到之前选择的项目。
我是这样保存的 lsitview.selectedindex:
private void NavigationHelper_SaveState(object sender, SaveStateEventArgs e)
{
e.PageState.Add("id", listview.SelectedIndex);
}
这就是我尝试设置列表视图的方式:
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>