2016-11-21 3 views
-1

Ich habe eine Registerkarte mit einem Stacklayout, dass ich mit einigen Kindersteuerelementen bevölkern. Die Seite hatte ursprünglich keine Navigation, aber jetzt habe ich die Registerseite hinzugefügt (programmgesteuert in der App.cs erstellt). Dies bedeutet, dass die Methode unten das Stapellayout der ausgewählten Registerseite nicht auffüllen kann.Wie kann auf die aktuelle TabbedPage zugegriffen werden?

Ich muss wissen, wie Sie auf die aktuelle Registerkarte zugreifen und dann die Elemente zum Stacklayout hinzufügen.

public static void addToReadout(string name, string time, string inout) 
{ 
    try 
    { 
     Label label1 = new Label { Text = name + " Successfully clocked " + inout + " @ " + time, TextColor = Color.Black }; 
     StackLayout sl = new StackLayout(); 


     var mp = (MainPage)App.Current.MainPage; 


     if (mp.readOut.Children.Count() < 7) 
     { 

      mp.readOut.Children.Add(label1); 
      mp.readOut.Children.Count(); 
     } 
     else 
     { 
      mp.readOut.Children.RemoveAt(0); 
      mp.readOut.Children.Add(label1); 
      mp.readOut.Children.Count(); 
     } 

    } 
    catch (Exception ex) 
    { 

     ErrorRepository.InsertError(ex.ToString()); 
    } 
} 

Dieses Problem ist mit dieser Zeile auf eine Registerkarte 'Setup seit Wechsel:

var mp = (MainPage)App.Current.MainPage; 

Antwort

-1

TabbedPage hat eine CurrentPage Eigenschaft, die einen Verweis auf die aktuelle aktive Seite zurückkehren.

Wenn Ihr Mainpage von TabbedPage erbt, können Sie dies tun

var mp = (MainPage)App.Current.MainPage; 
var current = mp.CurrentPage; 

Edit: basierend auf dem Code, den Sie in den Kommentaren eingefügt

var mp = (TabbedPage)App.Current.MainPage; 
var main = mp.CurrentPage; 
+0

ich versucht, dies durch die TabbedPage vererben, aber jetzt auf die In der ersten Zeile heißt es: Kann nicht konvertieren, und in der zweiten Zeile steht, dass es keine Definition für 'CurrentPage' – connersz

+0

in Ihrer App.cs (oder App.xaml.cs) gibt, wenn Sie MainPage zuweisen. Dies ist die Klasse, auf die Current.MainPage verweist. Erbt diese Klasse von TabbedPage? – Jason

+0

So sieht es aus: MainPage = new TabbedPage {Kinder = {new MainPage(), neues CompanySetup {BackgroundColor = Color.FromHex ("baf4d5")}, neues ChangePassword {BackgroundColor = Color.FromHex ("baf4d5")} }}; – connersz

Verwandte Themen