Mango Jump Start 抜粋:ページ間でメッセージを渡す

Mango Jump Start (03)より抜粋

Windows Phone アプリケーションの各ページは、基本的にステートレスとして考えるべきだがページ間でメッセージを渡したり、あるいはページをまたがって共通のデータクラスを持つことも可能。

以下はページ間でメッセージを渡す方法

1)移行元のページでナビゲーションを行う際にメッセージストリング("?msg=")を含める。

void OnGoSubPageBtnClick(object sender, RoutedEventArgs args)
{
    NavigationService.Navigate(new Uri("/SubPage.xaml?msg="
                               + _msgTextBox.Text, UriKind.Relative));
}

2)移行先のページでページがアクティブになった際に発生するOnNavigatedToイベントをオーバライドする。

protected override void OnNavigatedTo(NavigationEventArgs args)
{
    base.OnNavigatedTo(args);

    //メッセージを取得できたらUIに表示
    string msg = "";
    if(NavigationContext.QueryString.TryGetValue("msg", out msg))
    {
        _msgTextBlock.Text = msg;
    }
}