読者です 読者をやめる 読者になる 読者になる

かずきのBlog@hatena

日本マイクロソフトに勤めています。XAML + C#の組み合わせをメインに、たまにASP.NETやJavaなどの.NET系以外のことも書いています。掲載内容は個人の見解であり、所属する企業を代表するものではありません。

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