【发布时间】:2017-11-21 04:24:49
【问题描述】:
我已采用此 Xamarin Forms 演示中显示的方法。
但是,当我创建一个新的 MainPage 时,Master 和 Detail 都为空......我预计它将分别是我的 MenuPage 和 TabPage。这是一个错误还是我做错了什么?
主页:
<MasterDetailPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:ctr="clr-namespace:MyApp.Core.Views;assembly=MyApp.Core"
x:Class="SmartMiner.Core.Views.MainPage"
>
<MasterDetailPage.Master>
<ctr:MenuPage x:Name="MenuPage"/>
</MasterDetailPage.Master>
<MasterDetailPage.Detail>
<ctr:TabPage x:Name="TabPage" />
</MasterDetailPage.Detail>
菜单页(主)
<ContentPage
xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
Title="Menu"
x:Name="MenuPage"
x:Class="MyApp.Core.Views.MenuPage"
>
<ContentPage.Content>
</ContentPage.Content>
标签页(详情)
<TabbedPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="MyApp.Core.Views.TabPage"
xmlns:tab="clr-namespace:SmartMiner.Core.Views;assembly=SmartMiner.Core"
Title="Tabs Page"
>
<tab:Tab1 Title="Tab One"/>
<tab:Tab2 Title="Tab Two" />
<tab:Tab3 Title="Tab Three" />
初始化
protected override void OnStart(){
var mainPage = new MainPage();
if (Device.RuntimePlatform == Device.iOS)
MainPage = mainPage;
else
MainPage = new NavigationPage(mainPage);
}
检查var mainPage的结果是属性Master和Detail为null,指定MainPage抛出错误
“在分配给MainPage之前必须设置Master和Detail”
【问题讨论】:
-
两者都为空是什么意思?
-
我已经更新了我的问题以包含结果。
-
MainPage = new MainPage();把他的线放在 App() 里,不要放在 OnStart() 里
-
谢谢,我已经在 App init 以及目前在 OnStart 中尝试过......两者都产生相同的结果
-
看我的回答。 nav page是detail page,不是masterdetail page
标签: c# xaml xamarin.forms master-detail