LemonteaのUnity部屋

C#とかのお話です~

Xamarin.Forms PrismでMVVM入門 ページ遷移時にオブジェクトを渡す NavigationParameters

こんにちは。レモンティーです。

以前、Prismでのページ遷移をやりました。
www.sawalemontea.com


今回は、ページ遷移時にオブジェクトを受け渡しします。

渡す

渡すには、NavigationParametersを使います。

var param = new NavigationParameters
{
    {"key1",value1},
    {"key2",value2},
};

_navigationService.NavigateAsync("PageB",param);

keyは任意の文字列、valueは任意のオブジェクトです。

受け取る

受け取るには、ViewModelにINavigatingAwareを実装して、
そのOnNavigatingToメソッドの中で↓のように受け取ります。

public void OnNavigatingTo(NavigationParameters parameters)
{
    var v1 = (int)parameters["key1"];
    var v2 = (int)parameters["key2"];
}

例なので適当にintにキャストしていますがvalue1,2の型です。


ちなみにINavigatingAwareとよく似たインターフェースがあります。
INavigatedAwareとINavigationAwareです。

INavigatingAwareは
OnNavigatedToメソッドを持ちます。
これは、別のページから遷移してきた時に、ページ表示前に呼ばれます。
INavigatedAwareは
OnNavigatedToメソッドとOnNavigatedFromメソッドを持ちます。

OnNavigatedToは、別のページから遷移してきた時に、ページ表示後に呼ばれます。

OnNavigatedFromは、別のページに遷移するときに、
次の画面の OnNavigatingToの後、OnNavigatedFromの前 に呼ばれます。
INavigationAwareは
上の二つのインターフェースを実装します。
つまり、3つ全部持ちです。


今回はINavigatingAwareを使いましたが、
パラメータはOnNavigatedToでも受け取れますので
そこはお好みで


今回はこれでおしまいです。
www.sawalemontea.com