2016-08-24 6 views
0

複数のページを結合するXamarinアプリケーションを作成します。MasterDetailPageNavigationPageです。Xamarin内のMasterDetailPageとNavigationPageの組み合わせ

MasterDetailPageMasterDetailPageであり、MasterDetailPageのマスターには、ユーザーが表示できるビュー(クラスの種類、表示するイメージ、名前などの情報を格納するカスタムクラス)のリストが含まれています。これらのビューはすべてContentPageです。リストの項目をクリックすると、ContentPageはリフレクションを使用して初期化され、MasterDetailPageに格納されます。現時点では、Xamarinが示唆するようにすべてが行われています。

しかし、これらのうちの1つであるContentPagesには、ListViewが含まれています。

Example of the 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の上にレンダリングされます。

Example of the NavigationPage

ListViewの詳細ページに行くとき、私はMasterDetailPageの「バーガー」ボタンを削除することができます方法はありますか?または私は現在、間違ったワークフローを使用していますか?

答えて

0

詳細ページをNavigationPageとして設定します。

await Navigation.PushAsync(new NavigationPage(_detail)); 

あなたはボタンではなくハンバーガーをバック表示されます。

MainPage = new MasterDetailPage 
      { 
       Master = new MyMasterPage(), 
       Detail = new NavigationPage(MyHomePage()) 
      }); 

そして、あなたがして、他のページに移動することができ、詳細ビューから、あなたの中

_masterDetailPage.Detail = new NavigationPage(page); 

または

sampleをご覧ください。

+0

MasterDetailPageのDetailプロパティのページは、すでにナビゲーションページ内にあります。 – Echarnus

+0

サンプルプロジェクトを追加しました。どうぞご覧ください。 –

+0

遅い答えに申し訳ありません、多くの時間を持っていなかった。私はあなたの例を見て、Navigationpageの中にページを細かく入れました。 – Echarnus

関連する問題