Solucionado (ver solução)
Solucionado
(ver solução)
7
respostas

Master and Detail must be set before adding MasterDetailPage to a container

Caros, nao consigo resolver o problema abaixo:

System.InvalidOperationException: Master and Detail must be set before adding MasterDetailPage to a container

Obs.: Estou chamando a MasterPage de uma pagina de Login.

void Handle_Clicked(object sender, System.EventArgs e)
        {

            var masterDetail = new MenuPage();
            var navigationPage = new NavigationPage(masterDetail);

            Application.Current.MainPage = navigationPage;


        }
7 respostas

Voce precisa jogar a sua MasterDetailPage no Application.Current.MainPage e não um navigationPage

Ja tentei isso, tb não funcionou, acho que falta algo no meu 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"
             x:Class="TestDrive.MenuPage">

     <MasterDetailPage.Master>


        <ContentPage Title="Menu" BackgroundColor="#e8e8e8">
            <StackLayout Orientation="Vertical">
                <StackLayout BackgroundColor="#e74c3c" HeightRequest="75">
                    <Label Text="EcoMotive Europe" FontSize="20"
                     VerticalOptions="CenterAndExpand"
                     TextColor="White"
                     HorizontalOptions="Center"/>
                </StackLayout>

                <ListView x:Name="navigationDrawerList" RowHeight="60"
                  SeparatorVisibility="None" BackgroundColor="#e8e8e8"
                  ItemSelected="OnMenuItemSelected">
                    <ListView.ItemTemplate>
                        <DataTemplate>
                            <ViewCell>
                                <StackLayout VerticalOptions="FillAndExpand"
                                   Orientation="Horizontal"
                                   Padding="20,10,0,10" Spacing="20">

                                    <Image Source="{Binding Icon}"
                                     WidthRequest="40"  HeightRequest="40" 
                                     VerticalOptions="Center" />

                                    <Label Text="{Binding Titulo}"
                                       FontSize="Medium"
                                       VerticalOptions="Center"
                                       TextColor="Black"/>
                                </StackLayout>
                            </ViewCell>
                        </DataTemplate>
                    </ListView.ItemTemplate>
                </ListView>
            </StackLayout>
        </ContentPage>
    </MasterDetailPage.Master>

    <MasterDetailPage.Detail>
          <NavigationPage>
            <x:Arguments>
              <ContentPage Title="Tste"></ContentPage>

            </x:Arguments>
          </NavigationPage>
        </MasterDetailPage.Detail>

</MasterDetailPage>

Nao funciona se voce fizer:

Application.Current.MainPage = new MenuPage();

???

Isso, nao funciona. Parece que falta algo relacionado a propriedade Master e Detail no xaml. Vc saberia dizer?

 Application.Current.MainPage = new MenuPage();
solução!

Só peguei seu codigo e fiz :

Application.Current.MainPage = new MenuPage();

http://imgur.com/JQ2ugJB

http://imgur.com/3O2bR83

Ps: Removi o ItemSelected pq nao quis implementar o metodo, mas foi só isso que mudei e foi.

ItemSelected="OnMenuItemSelected"

Então, mudei o código, faltava definir a propriedade Master

Certo =) Qualquer duvida, só postar de novo =D Bom fim de semana =D