none
Windows phone 8.1 中如何取消页面后退? RRS feed

  • 问题

  • Windows phone 8.1 中如何取消页面后退?

    下面的代码似乎不起作用:

    private void OnBackPressed(object sender, BackPressedEventArgs e)
            {
                if (this.ItemsListView.SelectionMode == ListViewSelectionMode.Multiple)
                {
                    this.ItemsListView.SelectionMode = ListViewSelectionMode.None;
                    e.Handled = true;
                }
            }

    2014年8月31日 4:43

答案

  • 解决了。WP8.1 的项目模版里面加入了 NavigationHelper,并且在里面为 HardwareButtons 注册了 BackPressed 事件,因此设置 NavigationHelper 的 GoBackCommand 就可以了。例如。

    this.navigationHelper.GoBackCommand = new RelayCommand(() =>
                {
                    if (this.ItemsListView.SelectionMode == ListViewSelectionMode.Multiple)
                    {
                        this.ItemsListView.SelectionMode = ListViewSelectionMode.None;
                    }
                    else
                    {
                        this.navigationHelper.GoBack();
                    }

                }, this.navigationHelper.CanGoBack);

    2014年9月3日 2:09

全部回复

  • 楼主 你好,

    请参考:

    while(NavigationService.CanGoBack)
    {
        NavigationService.RemoveBackEntry();
    }
    谢谢!


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2014年9月1日 2:37
    版主
  • 感谢 @Jimmy Yang' 的回复。

    我创建的是 Windows phone 8.1 应用程序,因此在上下文中没有 NavigationService。另外,您给的参考是将后退堆栈中的条目删除,而在本例中要实现的是:如果 ListView 在多选模式下时退出多选模式,否则退回到上个页面。是否还有其他解决方案?

    谢谢。

    2014年9月2日 4:40
  • 请问你上面这段函数式写在哪里的?
    2014年9月3日 1:18
  • 解决了。WP8.1 的项目模版里面加入了 NavigationHelper,并且在里面为 HardwareButtons 注册了 BackPressed 事件,因此设置 NavigationHelper 的 GoBackCommand 就可以了。例如。

    this.navigationHelper.GoBackCommand = new RelayCommand(() =>
                {
                    if (this.ItemsListView.SelectionMode == ListViewSelectionMode.Multiple)
                    {
                        this.ItemsListView.SelectionMode = ListViewSelectionMode.None;
                    }
                    else
                    {
                        this.navigationHelper.GoBack();
                    }

                }, this.navigationHelper.CanGoBack);

    2014年9月3日 2:09