2016-06-24 4 views
5

Próbuję dodać prostą stronę Master Detail do już istniejącej aplikacji Xamarin. Oto deklaracja MasterDetailPageXamarin - Master i Detail muszą zostać ustawione przed dodaniem MasterDetailPage do kontenera

<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> 

Jednak, kiedy uruchomić aplikację pojawia się następujący błąd podczas nawigacji aż do strony:

Mistrz i Detail musi być ustawiony przed dodaniem MasterDetailPage do pojemniku

Zakładam, że ma to związek z autofakiem, który jest używany w aplikacji jako pojemnik IOC, ale nie był w stanie go do tego palcem. Czy ktoś inny tego doświadczył?

Odpowiedz

2

Oto mój kod działa, jeśli ktoś to potrzebne:

<?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> 
0

zapomniałem użyć InitializeComponent(); na mojego kodu MasterDetailPage za plik. W twoim przypadku musi to być SettingsPage. Skomentowałem to, ponieważ jeden raz pokazał mi błąd.

0

Możesz spróbować: Otwórz prostą klasę dla strony szczegółów mistrzowskich. Ustaw nazwę MyMasterPage (ustaw żądaną nazwę).

public class MyMasterPage : MasterDetailPage 
    { 
     public MyMasterPage() 
     { 
      this.Master = new MenuPage();//name of your menupage     
      this.Detail = new DetailPage();//name of your detailpage 

     } 
    } 

Teraz masz swoją stronę szczegółów mistrzowskich. Ostatnią rzeczą, którą powinieneś dodać, jest 2 strona ContentPage jedna dla strony menu, inna dla strony DetailPage.

Powiązane problemy