在Window Phone開發當中,用NavigationService來控制頁面導航,如下代碼:
this.NavigationService.Navigate(new Uri("/SecondPage.xaml?name=js",UriKind.Relative));
讓我們來分析一下:Navigate是用於導航的函數
Uri就是類似於網頁中網址,包含了頁面的地址信息
"/SecondPage.xaml?name=js"地址是什麼意思呢?讓我們重點關注一下:
/SecondPage.xaml:就跟Uri第二個參數想對應的,表示頁面的相對地址
?name=js:表示這地址在傳遞的時候帶一個值,關鍵字爲:name,值爲:js
在這裏順便提一下,是不是跟網頁的URL很相似,沒錯,WP7的頁面就是基於Web的基礎上開發出來的。相對於android的開發,相當省事!
好,既然頁面跳轉的時候傳值了,那麼我們如何在目標頁面上獲取到這個值呢?看如下代碼:
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
base.OnNavigatedTo(e);
if (NavigationContext.QueryString.ContainsKey("name"))
{
textBox1.Text = NavigationContext.QueryString["name"];
}
}
從上面的代碼來看,在目標頁面上有Navigation相對應的一些函數,我們可以在這個重寫的方法中添加上面的代碼,就可以獲取到【name】的值了 在這也介紹一個這個重寫的函數:【OnNavigatedTo】,也就是【navigate to me】的意思:從另外一個頁面跳轉到當前頁面!當然還有一個相對應的函數:
protected override void OnNavigatedFrom(System.Windows.Navigation.NavigationEventArgs e)
{
base.OnNavigatedFrom(e);
}
【OnNavigatedFrom】,這表示【navigate from me】:從當前頁面跳轉到另外一個頁面!