【问题标题】:Xamarin Master and MasterDetailPage InvalidOperationExceptionXamarin Master 和 MasterDetailPage InvalidOperationException
【发布时间】:2019-02-27 14:48:41
【问题描述】:

我不知道为什么我会收到这个错误我已经阅读了很多关于这个错误的内容,听起来它与未设置的 xaml 文件中的标题有关。我所有的页面都设置了标题。错误来自 app.xaml.cs MainPage= new MainPage();

还有什么其他东西可以触发这个异常吗?

System.InvalidOperationException:在将 MasterDetailPage 添加到容器之前必须设置 Master 和 Detail

MainPage.xaml

<?xml version="1.0" encoding="utf-8" ?>
<MasterDetailPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:pages="clr-namespace:ReimbursementApp.Pages"
             x:Class="ReimbursementApp.Pages.MainPage"
             xmlns:telerikPrimitives="clr-namespace:Telerik.XamarinForms.Primitives;assembly=Telerik.XamarinForms.Primitives"
             Title="Main">

    <MasterDetailPage.Master>
        <pages:MenuPage />
    </MasterDetailPage.Master>

</MasterDetailPage>

MenuPage.xaml

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="ReimbursementApp.Pages.MenuPage"
             xmlns:telerikPrimitives="clr-namespace:Telerik.XamarinForms.Primitives;assembly=Telerik.XamarinForms.Primitives"
             xmlns:telerik="clr-namespace:Telerik.XamarinForms.DataControls;assembly=Telerik.XamarinForms.DataControls"
             Title="Menu">
    <!--<ContentPage.ToolbarItems>
        <ToolbarItem Activated="OnToolbarButtonClick" Order="Primary" Priority="0" Icon="hamburgerButtonIcon"/>
    </ContentPage.ToolbarItems>
    <Grid>
        <telerikPrimitives:RadSideDrawer x:Name="drawer" DrawerLength="250">
        </telerikPrimitives:RadSideDrawer>
    </Grid>-->

    <StackLayout VerticalOptions="FillAndExpand">
        <ListView x:Name="ListViewMenu"
                    HasUnevenRows="True">
            <ListView.ItemTemplate>
                <DataTemplate>
                    <ViewCell>
                        <Grid Padding="10">
                            <Label Text="{Binding Title}" FontSize="20"/>
                        </Grid>
                    </ViewCell>
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>
    </StackLayout>
</ContentPage>

【问题讨论】:

    标签: c# xamarin xamarin.forms


    【解决方案1】:

    错误信息字面意思是说出了什么问题:

    在将 MasterDetailPage 添加到容器之前必须设置 Master 和 Detail

    您已经在 Master 属性中设置了一些内容,如下所示:

    <MasterDetailPage.Master> 
        <pages:MenuPage />
    </MasterDetailPage.Master>
    

    但您还应该设置Detail 属性,如下所示:

    <MasterDetailPage.Detail> 
        <pages:MyMainPage />
    </MasterDetailPage.Detail>
    

    MasterDetailPage 只是一个容器,必须同时拥有一个主文件(通常是一个菜单)和一个细节(从菜单中挑选的东西)才能显示有用的东西。

    【讨论】:

      【解决方案2】:

      如果指定为 MasterDetailPage 的页面未正确加载,即该页面上的 xaml 中可能存在错误,甚至在加载 App.xaml 中指定的静态资源时发现错误,我也看到了此错误。我就是这种情况,修复错误解决了我的问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-03-17
        • 1970-01-01
        • 2017-11-06
        • 1970-01-01
        • 2018-03-01
        • 2017-01-24
        • 2018-01-20
        • 2016-08-24
        相关资源
        最近更新 更多