かずきのBlog@hatena

すきな言語は C# + XAML の組み合わせ。Azure Functions も好き。最近は Go 言語勉強中。日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。

Xamarin.Forms + Prism.FormsでViewの登録

Prism.Formsを使ってViewを作成するには、Views名前空間にXAMLの形式で作るのが素直でいい感じです。

Viewは、利用可能にするには、Views名前空間に作成するのに加えてAppクラスのRegisterTypesメソッドでUnityのコンテナに登録する必要があります。この登録処理は、専用のRegisterTypeForNavigation拡張メソッドが定義されています。これをしないと画面遷移ができないので要注意です。

例えばNextPageというViewを作った場合は以下のように、RegisterTypesメソッドで以下のように登録処理を行います。

protected override void RegisterTypes()
{
    this.Container.RegisterTypeForNavigation<MainPage>();
    // 追加が必要!
    this.Container.RegisterTypeForNavigation<NextPage>();
}

そうするとOnInitializedでやっているようにNavigationServiceのNavigateメソッドで画面遷移ができるようになります。 

this.NavigationService.Navigate("NextPage");