簡體   English   中英

Xamarin Master和MasterDetailPage InvalidOperationException

[英]Xamarin Master and MasterDetailPage InvalidOperationException

我不知道為什么我得到這個錯誤我已經讀過很多關於這個錯誤的聲音,聽起來它與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>

錯誤信息實際上是在說錯了什么:

在將MasterDetailPage添加到容器之前,必須先設置Master和Detail

您已經在Master屬性中設置了一些內容,如下所示:

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

但是你也應該設置Detail屬性,如下所示:

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

MasterDetailPage只是一個容器,必須同時具有主(通常是菜單)和細節(從菜單中挑選的東西)以顯示有用的東西。

我還看到如果指定為MasterDetailPage的頁面未正確加載,則會發生此錯誤,即該頁面上的xaml中可能存在錯誤,甚至發現加載App.xaml中指定的靜態資源時出錯。 這是我的情況,修復錯誤解決了我的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM