gpt4 book ai didi

c# - Master和Detail must be set before adding MasterDetailPage to a container 错误在Xamarin forms中

转载 作者:行者123 更新时间:2023-11-30 20:17:43 25 4
gpt4 key购买 nike

我有一个 xamarin 表单应用程序。布局是使用自定义 rootpage.cs 文件创建的。它具有用于导航页面的导航菜单。在 App.cs 文件中通过

重定向到根页面

MainPage = new RootPage();

在 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;
};
}

HomePage.xaml 只是一个内容页面。应用程序首次运行时显示错误“在将 MasterDetailPage 添加到容器错误之前必须设置 Master 和 Detail”我是 xamarin 的新手。您能否为此提出一个解决方案。

最佳答案

错误实际上就是发生了什么。您需要同时设置 MasterDetail MasterDetailPage 的属性在将其添加到容器页面之前,例如 NavigationPage。

关于c# - Master和Detail must be set before adding MasterDetailPage to a container 错误在Xamarin forms中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43798081/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com