繁体   English   中英

按下Windows Phone后退按钮后,如何使Windows Phone 8.1 ListView打开列表的最后一个选定项?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM