PrismでXamarin.Formsする方法

C#Xamarin.FormsでPrismでMVVM実装#09_リテラル文字の対応

前回はNavigationService.NavigateAsync(“PageBView”);と記述することで,ViewModelからでもPgeBViewページに画面遷移できることを確認しました。ただ,”PageBView”というコーディングは,単純な文字列の為,少しバグの混入が気になります。要するに,PageBViewというクラスの名前を変更しても,文字列の為コンパイルエラーにならないので,変更漏れが発生しやすくなります。コンパイルが通ってしまうという事は,実行時にエラーになるため,不具合の混入に気付かずにリリースしてしまうという事です。その場合はクレーム等の問題になるため,何とか避けたいことです。今回はこのリテラル文字を取り除く方法を確認していきます。

リテラル文字を取り除く方法

リテラル文字を取り除くには「nameof」を使います。変更は次のように行います。

private void PageBShow()
{
    NavigationService.NavigateAsync(nameof(PageBView));
}

MainPageViewModel.cs の最初のusingに「using BlankApp1.Views;」を追加します。 これで,PageBviewという文字列を記述したのと同じ効果が得られますが,PageBviewのクラス名が変更されても追従してコンパイルエラーになるので,確実にバグの混入を防ぐことができます。

Xamarin.FormsでPrismを使ってMVVMで実装する方法