WP8頁面跳轉實現參數傳遞的多種方法(已完善)

方法一:通過WEB傳參方式進行傳參
開始跳轉頁:
NavigationService.Navigate(new Uri("/Page/MainPage/XXXXPage.xaml?Address="+address,UriKind.RelativeOrAbsolute));
轉入頁:
//此方法應該在頁面的Loaded方法體中實現
string address=NavigationContext.QueryString["address"];

判斷是否存在:
if (NavigationContext.QueryString.ContainsKey("address"))
            {
               string address=NavigationContext.QueryString["address"];
            }

方法二:通過獨立存儲方式進行傳參
開始跳轉頁:
IsolatedStorageSettings iss = IsolatedStorageSettings.ApplicationSettings;
iss["ImageSource"] = image.source;
NavigationService.Navigate(new Uri("/Page/MainPage/XXXXPage.xaml", UriKind.Relative));
轉入頁:
IsolatedStorageSettings iss = IsolatedStorageSettings.ApplicationSettings;
image.Source = (BitmapImage)iss["ImageSource"];

方法三:通過PhoneApplicationService來實現傳參
開始跳轉頁:
PhoneApplicationService myService = PhoneApplicationService.Current;
protected override void OnNavigatedFrom(NavigationEventArgs e){
      myService.State["address"] = "address";
      base.OnNavigatedFrom(e);
}
轉入頁:
PhoneApplicationService myService = PhoneApplicationService.Current;
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e){
    object address;
    if (myService.State.ContainsKey("address")){
        if (myService.State.TryGetValue("address", out address)){
            string address = address.ToString();
        }
    }
    base.OnNavigatedTo(e);
}

方法四:通過App.xaml進行傳參(共享參數)
App.xaml:
定義一個或幾個用於傳參的對象,如public string Address{set;get;}
開始跳轉頁: 
(Application.Current as App).Address= "address";
轉入頁:
string address=(Application.Current as App).Address;

判斷是否存在:
 if (PhoneApplicationService.Current.State.ContainsKey("address"))
{
string address
= PhoneApplicationService.Current.State["address"] as string;
}

發佈了87 篇原創文章 · 獲贊 18 · 訪問量 26萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章