2012年5月11日金曜日

[Windows Phone]画面遷移

画面遷移で値を渡す際の方法についてです。
大筋ではWebページ的な感覚で良いようです。

まず、値を渡さないで画面遷移するとき。
NavigationService.Navigate(new Uri("/next.xaml", UriKind.Relative)); 

同じように、値を渡さないで画面を戻るとき。
NavigationService.GoBack(); 

画面間で値を渡す時はget引数で設定すればよいらしい。
NavigationService.Navigate(new Uri("/next.xaml?param=value", UriKind.Relative)); 

受け取り側はこんな感じ
NavigationContext.QueryString.TryGetValue("param", out value);


画面が戻る場合に値がほしいとき、ちょっと良い方法が見つかりませんでした。
とりあえず、IsolatedStorageSettingsを使って値を持っておき、戻った画面のLoadedイベントで取り出す方法を使いました。
セッション感覚で使っています。

渡す側:
IsolatedStorageSettings appstore = IsolatedStorageSettings.ApplicationSettings;
appstore["key"] = value;
受け取る側:
IsolatedStorageSettings appstore = IsolatedStorageSettings.ApplicationSettings;
String value = Convert.toString(appstore["key"]);

参考:「ページ間でナビゲーションを行う際のイベントのシーケンス図


0 件のコメント: