かずきのBlog@hatena

日本マイクロソフトに勤めています。このブログは個人ブログなので、ここに書いている内容は個人的な意見で会社の公式見解ではない点にご注意ください。好きなものは XAML と C# 。苦手なものは型の無い言語です。

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");