如何使Windows phone 8.1的列表视图在按下Windows phone返回键后打开列表最后选定的项目

本文关键字:列表 phone Windows 最后 项目 何使 视图 返回 | 更新日期: 2023-09-27 18:02:11

我在listview中显示的图像列表。当我点击列表视图项目时,它打开另一个页面,显示当前图片的更大版本。当我按下Windows phone后退键时,我希望列表视图滚动到之前选择的项目。

下面是我如何保存lsitview. selecteindex:
 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滚动自动最后选定的项目?

"

如何使Windows phone 8.1的列表视图在按下Windows phone返回键后打开列表最后选定的项目

如果我理解正确的话,当用户去到图片并返回时,ListView被滚动到顶部,对吗?在本例中,这是因为页面实例没有保存在缓存中,所以当您按下后退按钮时,它会再次加载。你可以通过将NavigationCacheMode设置为Enabled来阻止这种情况:

<Page x:Class="App.YourClass"
    NavigationCacheMode="Enabled"
</Page>