私はXamarin Forms with Prismを使用しています。 MasterDetail.MasterからMasterDetailの一部ではないContentPageに移動するにはどうすればよいですか(つまり、詳細を更新してMaster/Detail関係の一部にし続けたいと思いませんか?ユースケースは、ハンバーガーメニューから[設定]をクリックしたときのGmailアプリのようなものです。それはあなたをMaster/Detailから取り出して、NavigationPage/ContentPageに戻り、BackボタンをクリックしてMasterDetailページに戻ります。あなたはプリズムを使用していなかった場合はPrismを使用してXamarinフォームをマスタ詳細からコンテンツ詳細ページにナビゲートする方法
あなたは詳細ページに移動し、そこからNavigation.PushAsyncを行うことができます:
var mdp = Application.Current.MainPage as MasterDetailPage;
mdp.IsPresented = false;
await mdp.Detail.Navigation.PushAsync(new ContentPage2());
しかし、私は、この使用してプリズムのナビゲーションを行う方法が表示されません。あなたのApplication.Current.MainPage
がMasterDetailPage
であると仮定すると、
-Steve
はい、オプション1は実装したいものです。したがって、詳細ページのViewModelにアクセスする必要があります。マスター/ディテール関係にいくつかの詳細ページを交換しているので、私は特定の詳細ページを知らない。そのため、私は、Paramへのナビゲーションを実行するための単一のメソッド(NavigateTo(string param))を持つ詳細なViewModelクラス用のインターフェイスを作成しています。マスターViewModelから、Detail.CurrentPage.BindingContextを介して詳細ページのViewModelにアクセスし、インターフェイスにキャストしてNavigateToメソッドを呼び出しています。これを行うより良い方法はありますか? – Steve
MessagingCenterを使用して、キャストの代わりにナビゲーションを行うように詳細ページViewModelに通知できます。 – lowleetak
ありがとうございます。非常に役立ちます。 – Steve