2015-04-20 32 views
1

我正在創建一個Windows Phone 8.1應用程序。Windows Phone 8.1後向導航電話參數數據

我的應用程序有一些屏幕。在第一個屏幕上,我使用參數數據將屏幕導航到第二個屏幕。現在我想用不同的參數數據從第二個屏幕導航到第一個屏幕。

使用Frame.Navigate(typeof(frame1),parameter);我可以通過從第一屏幕數據到第二屏幕(前進導航)

Frame.Navigate(typeof(frame1), "data"); 

但如何可以通過從第二屏幕數據到第一屏幕(向後導航)?

回答

1

有沒有簡單的解決方案。使用Frame.GoBack方法,您無法傳遞參數。此外,如果您使用NavigationHelper.GoBack,則無法傳遞參數。這是通過設計。如果你回去,你會打開之前打開的視圖。這是going back的定義。你想「恢復」以前的狀態。

但是,如果將新數據存儲到可從frame1訪問的變量中,將會有可能的解決方案。

你能說出爲什麼你會使用不同的數據向後導航?

另外,更好的可能性是使用ContentDialog。您可以在打開之前將所需的ViewModel添加到DataContext中。之後,ContentDialog關閉,您可以驗證傳遞給它的數據。

ContentDialog cd = new MyContentDialog(); 

if (parameter != null) 
{ 
    cd.DataContext = // set context here; 
} 
await cd.ShowAsync(); 
//now lets validate or process the necessary data. 
+0

我想從主頁確認頁面。用戶保存主頁面,控件通過確認用戶提問輸入值的頁面。此輸入值傳遞需要傳遞迴主頁..我現在這是可能的彈出,但我們想要一個新的頁面,而不是彈出..我也需要保持返回按鈕流 –

+0

你的意思是用'popup'打開一個ContentDialog? –

+0

要求是創建一個新頁面而不是彈出 –

1

我能想到的唯一的解決辦法是在App.xaml.cs聲明一個全局變量,這樣就可以從式2訪問並設置一個值,那麼你從幀1的值。

public static Object navigationData 
{ 
     get; 
     set; 
} 

而且從無處不在,你訪問它使用

var data = App.navigationData; 
相關問題