MAUI+CommunityToolKit.MVVMでのページ遷移

ページ遷移はちょっとめんどうくさいし覚えれなさそうなのでメモ。MainPage->DetailPageへの遷移とする。

AppShell.xaml.csへの記載

コンストラクタでRoutingへ登録

Routing.RegisterRoute(nameof(DetailPage), typeof(DetailPage));

MainPageのViewModelから引き渡す情報を準備して遷移

Modelにクラス(CustomModel)を準備して、それをDictionary<string, object>を使って渡す

Shell.Current.GotoAsync($"{nameof(DetailPage)}",
    new Dictionary<string, object>
    {
        {"UserKey", arg}
    });

DetailPageのViewModelで情報を受け取る

[QueryProperty(nameof(Arg), "UserKey")]
public partial class DetailViewModel : ObservableObject
{
    [ObservableProperty]
    CustomModel arg;
}

こうなってくると、自動コード生成のキャメルケースとかでちょっと混乱してくる。