私はxamarinフォームアプリケーションを持っています。レイアウトは、カスタムrootpage.csファイルを使用して作成されます。ページをナビゲートするためのナビゲーションメニューがあります。 App.csファイルでメニューページクラスファイルでrootPageクラスファイル内MasterDetailPageをXamarinフォームのコンテナエラーに追加する前にマスターと詳細を設定する必要があります
MainPage = new RootPage();
によりルートページへ
Dictionary<MenuType, NavigationPage> Pages { get; set; }
public RootPage()
{
Pages = new Dictionary<MenuType, NavigationPage>();
Master = new MenuPage(this);
BindingContext = new BaseViewModel
{
Title = "Manager",
Icon = "icon.png"
};
NavigateAsync(MenuType.Home);
InvalidateMeasure();
}
public async Task NavigateAsync(MenuType id)
{
Page newPage;
if (!Pages.ContainsKey(id))
{
switch (id)
{
case MenuType.Home:
Pages.Add(id, new NavigationPage(new HomePage()));
break;
case MenuType.AboutUs:
Pages.Add(id, new NavigationPage(new ContactUsPage()));
break;
}
}
newPage = Pages[id];
if (newPage == null)
return;
Detail = newPage;
IsPresented = false;
}
をリダイレクトする以下のコード
RootPage root;
public MenuPage(RootPage _root)
{
root = _root;
InitializeComponent();
List<HomeMenuItemModel> menuItems;
BindingContext = new BaseViewModel
{
Title = "Sample App",
Subtitle = "Sample App",
Icon = "icon.png"
};
ListViewMenu.ItemsSource = menuItems = new List<HomeMenuItemModel>
{
new HomeMenuItemModel { Title = "Home", MenuType = MenuType.Home, Icon ="icon.png" },
new HomeMenuItemModel { Title = "Contact Us", MenuType = MenuType.ContactUs, Icon ="icon.png" },
new HomeMenuItemModel { Title = "About Us", MenuType = MenuType.AboutUs, Icon ="icon.png" },
};
ListViewMenu.SelectedItem = menuItems[0];
ListViewMenu.ItemSelected += async (sender, e) =>
{
if (ListViewMenu.SelectedItem == null)
return;
if (e.SelectedItem != null)
await this.root.NavigateAsync(((HomeMenuItemModel)e.SelectedItem).MenuType);
ListViewMenu.SelectedItem = null;
};
}
ホームページを持っています.xamlは単なるコンテンツページです。 アプリケーションの最初の実行中に、「MasterDetailPageをコンテナエラーに追加する前にマスターと詳細を設定する必要があります」というエラーが表示されます。 xamarinを初めて使用しました。あなたはこれのための解決策を提案してください。
私の場合、詳細プロパティは設定されていません。ありがとう! – JedatKinports