我正在尝试将一个简单的Master Detail页面添加到已经存在的Xamarin应用程序中。这是MasterDetailPage声明
<MasterDetailPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:pages="clr-namespace:MyCareManager.XamForms.Pages;assembly=MyCareManager.XamForms"
x:Class="MyCareManager.XamForms.Pages.SettingsPage">
<MasterDetailPage.Master>
<ContentPage Title="This is the test master page"></ContentPage>
</MasterDetailPage.Master>
<MasterDetailPage.Detail>
<NavigationPage>
<x:Arguments>
<ContentPage Title="This is a view"></ContentPage>
</x:Arguments>
</NavigationPage>
</MasterDetailPage.Detail>
</MasterDetailPage>
但是,当我运行应用程序时,导航到页面时出现以下错误:
在将MasterDetailPage添加到a之前,必须先设置Master和Detail 容器
我假设它与autofac一样,在应用程序中用作IOC容器,但还没有能够指责它。还有其他人经历过这个吗?
答案 0 :(得分:4)
尝试查看此链接,这解决了我的问题,https://github.com/rid00z/FreshMvvm/issues/64。
答案 1 :(得分:3)
如果有人需要,我的运行代码如下:
<?xml version="1.0" encoding="utf-8" ?>
<MasterDetailPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="CrossApp1.MenuPage">
<MasterDetailPage.Master>
<ContentPage Title="Menu">
<StackLayout Orientation="Vertical">
<Button Text="Sports"/>
<Button Text="Economy"/>
<Button Text="Education"/>
<Button Text="Science"/>
</StackLayout>
</ContentPage>
</MasterDetailPage.Master>
<MasterDetailPage.Detail>
<NavigationPage>
<x:Arguments>
<ContentPage Title="This is a view"></ContentPage>
</x:Arguments>
</NavigationPage>
</MasterDetailPage.Detail>
</MasterDetailPage>
答案 2 :(得分:1)
我忘记在我的InitializeComponent();
代码后面使用MasterDetailPage
。在您的情况下,必须是SettingsPage
。我已经评论过了,因为他曾经向我展示过一次错误。
答案 3 :(得分:1)
您可以尝试:打开Master Detail Page的简单类。设置名称MyMasterPage(设置您想要的名称)。
public class MyMasterPage : MasterDetailPage
{
public MyMasterPage()
{
this.Master = new MenuPage();//name of your menupage
this.Detail = new DetailPage();//name of your detailpage
}
}
现在您拥有了您的主要详细信息页面。最后你应该添加2个ContentPage,一个用于Menu Page,另一个用于DetailPage。
答案 4 :(得分:0)
我通过添加Detail
的{{1}}部分来解决了这个问题
喜欢
MasterDetailPage