2014-09-04 69 views
0

使用MvvmCross构建Windows Phone应用程序(8.1使用WinRT)。导航到使用ShowViewModel()的新视图。但是当我点击手机上的后退按钮时,应用程序正在关闭,而不是导航回第一个视图。我该怎么做我想在返回按钮时返回到第一个视图?Windows Phone应用程序中的MvvmCross和后退按钮

+0

在http://msdn.microsoft.com/en-us/library/windows/apps/xaml/dn639128.aspx中的Win(P)RT应用程序中的后退按钮上有一些建议 - 包括一些“HardwareButtons_BackPressed”代码App.xaml.cs文件 – Stuart 2014-09-08 06:56:34

回答

3

这是一个更简单的解决方案。为所有从MvxWindowsPage派生的WP页面创建一个基本类型。然后,处理返回键那里,路线正确的信息给你的VM:现在

public abstract class MyBaseView : MvxWindowsPage { 
    public MyBaseView() { 
     this.InitializeComponent(); 
     HardwareButtons.BackPressed += HardwareButtons_BackPressed; 
    } 

    void HardwareButtons_BackPressed(object sender, BackPressedEventArgs e) { 
     if (Frame.CanGoBack) { 
      var vm = ViewModel as MyBaseViewModel; 
      if (vm != null) { 
       e.Handled = true; 
       vm.GoBackCommand.Execute(null); 
      } 
     } 
    } 
} 

,你也必须确保你有一个基础视图模型从MvxViewModel派生并从中派生所有虚拟机。该基础虚拟机应该有一个GoBackCommand可观察属性,并且执行该命令应该执行一个简单的Close(this)。

要看看有什么引擎盖下怎么回事,看到此相关的问题:Windows Phone 8.1 Universal App terminates on navigating back from second page?

编辑 固定声明。

相关问题