私はXamarin.Forms 2.3.1.114を使用してクロスプラットフォームアプリケーションを構築しています。私はUWPアプリから始めています。今はデスクトップアプリケーションとしてデバッグしています。Xamarin:MasterDetailPageの詳細の戻るボタン
これは、現在のナビゲーション・パスです:
メインメニュー(ContentPage) - >コンテンツ(MasterDetailPage)
MasterDetailPage:
- >マスター(ContentPage)は、ListViewコントロールを経由して示す項目のリストが含まれています
- >詳細(ContentPage)は、単一のリスト項目
Xamarinドキュメントからのデータを表示します以下のようになります。
詳細ページは、MasterDetailPage.IsPresentedプロパティをfalseに設定することでユーザーに提示されます。
https://developer.xamarin.com/guides/xamarin-forms/user-interface/navigation/master-detail-page/
だから私は、マスターページの公共の場でのListViewをした、とMasterDetailPageに次のコードの似を追加しました:
public MyMasterDetailPage()
{
this.Master.ItemsListView.ItemSelected += MasterListView_ItemSelected;
}
private void MasterListView_ItemSelected(object sender, SelectedItemChangedEventArgs e)
{
if (this.Master.ItemsListView.SelectedItem == null)
{
return;
}
this.Detail.BindingContext = this.Master.ItemsListView.SelectedItem;
this.IsPresented = false;
}
詳細ページには、選択した項目の詳細を示しています、これはうまくいきます。
ただし、戻るボタンがあります。詳細ページにあるとき、戻るボタンはマスターページとは対照的にメインメニューのコンテンツページに戻ります。これは私の目で予想される動作です。この動作を達成するための意図された方法は何ですか?ここで
は、私が試したものです:
コースの概要ページでは、ナビゲーションスタックにプッシュされていないため、この動作があります。 ItemSelectedイベントで詳細ページのインスタンスをプッシュすると、そのParentプロパティが既に設定されているため、例外が発生します。
MasterDetailPageのDetailプロパティを設定するときに、[ナビゲーション]ページで[詳細]ページをラップしようとしましたが、ナビゲーションボタンまたはこれらの行に沿ったものを要求するNavigationPageによって表示される。また、同じ結果を持つContentPageとは対照的に、DetailページをNavigationPageから継承しようとしました。
ここで正しいことを探しているかどうかはわかりませんが、MasterDetailPagesの使用方法に誤解があるようです。どんな助けもありがとうございます。
これはこの現象を示すプロジェクトです。
https://1drv.ms/u/s!At78FKXjEGEohocQQgxaZuCYT2rwMw
、UWPアプリを起動し、「一覧」をクリックし、左の任意の項目をクリックしてください。戻るボタンをクリックすると、私の問題が表示されます。
こんにちはダニエル、あなたは現在のコードは、あなたがいることをやったのか、戻るボタンが見えるように言いました?デモはあなたの質問を理解するのに役立ちます。詳細ページには、TabbedPage、NavigationPage、およびContentPageインスタンスのみが入力されている必要があります。MasterDetailPageを選択している場合、NavigationPageはシナリオに合わせて使用します。 –
こんにちはFranklin、投稿の最後に問題のあるプロジェクトへのリンクを追加しました。私はバックボタンを表示させるために何か特別なことをしなかった、それはナビゲーションスタックがあるために自動でなければならない。 –