複数のページを結合するXamarinアプリケーションを作成します。MasterDetailPage
とNavigationPage
です。Xamarin内のMasterDetailPageとNavigationPageの組み合わせ
MasterDetailPage
がMasterDetailPage
であり、MasterDetailPage
のマスターには、ユーザーが表示できるビュー(クラスの種類、表示するイメージ、名前などの情報を格納するカスタムクラス)のリストが含まれています。これらのビューはすべてContentPage
です。リストの項目をクリックすると、ContentPage
はリフレクションを使用して初期化され、MasterDetailPage
に格納されます。現時点では、Xamarinが示唆するようにすべてが行われています。
しかし、これらのうちの1つであるContentPages
には、ListView
が含まれています。
項目が選択された場合に、ListView
はdetailviewを開く必要があり、ユーザがListView
に戻ることができなければなりません。そのため私は、Navigation
クラスを使用していて、次のように、NavigationPage
内のページをプッシュ(良く行うことができる結合が、それはただXamarinと感じてもらうためにです):
private async Task Handle_ItemSelected(object sender, Xamarin.Forms.SelectedItemChangedEventArgs e)
{
if (_detail == null)
{
_detail = new Detail();
}
_detail.BindingContext = SelectedTrack;
await Navigation.PushAsync(new NavigationPage(_detail));
}
次のように行われた場合、 戻るボタンはMasterDetailPage
の上にレンダリングされます。
ListView
の詳細ページに行くとき、私はMasterDetailPageの「バーガー」ボタンを削除することができます方法はありますか?または私は現在、間違ったワークフローを使用していますか?
MasterDetailPageのDetailプロパティのページは、すでにナビゲーションページ内にあります。 – Echarnus
サンプルプロジェクトを追加しました。どうぞご覧ください。 –
遅い答えに申し訳ありません、多くの時間を持っていなかった。私はあなたの例を見て、Navigationpageの中にページを細かく入れました。 – Echarnus