酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

Metroスタイルアプリで画面遷移をおこなう

Windows Phoneアプリケーションでは、各画面はPhoneApplicationPageクラスを継承したページから成り立っていて、画面遷移時にはページが持っているNavigationServiceプロパティのNavigateメソッドを呼ぶことで画面遷移がおこなわれます。

Metroスタイルアプリで画面遷移を行うには、FrameプロパティのNavigateメソッドを使用します。遷移先の型とパラメータ(以下のソースコードの場合e.ClickedItem)を渡すことができます。

void ItemView_ItemClick(object sender, ItemClickEventArgs e) {
    this.Frame.Navigate(typeof(SplitPage), e.ClickedItem);
}

遷移先でパラメータを受け取るためにはどうすればよいのでしょうか。OnNavigatedToメソッドの引数NavigationEventArgs型のParameterプロパティ(以下の場合e.Parameter)が、先ほど遷移元で指定したe.ClickedItemです。適切な型へキャストして使ってください。

protected override void OnNavigatedTo(NavigationEventArgs e) {
    var group = (SampleDataGroup)e.Parameter;
    this.DefaultViewModel["Group"] = group;
    this.DefaultViewModel["Items"] = group.Items;
}