2014-09-04 125 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?

編輯 固定聲明。

相關問題