Xaml 如何在当前选项卡页上进行访问控制?

Xaml 如何在当前选项卡页上进行访问控制?,xaml,xamarin.forms,Xaml,Xamarin.forms,我有一个带有stacklayout的选项卡式页面,其中填充了一些子控件。该页面最初没有导航,但现在我添加了选项卡式页面(在app.cs中以编程方式创建),这意味着下面的方法无法填充所选选项卡式页面的stacklayout public static void addToReadout(string name, string time, string inout) { try { Label label1 = new Label { Text = name + "

我有一个带有stacklayout的选项卡式页面,其中填充了一些子控件。该页面最初没有导航,但现在我添加了选项卡式页面(在app.cs中以编程方式创建),这意味着下面的方法无法填充所选选项卡式页面的stacklayout

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());
    }
}
我需要知道如何访问当前选项卡式页面,然后将项目添加到stacklayout

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());
    }
}
TabbedPage具有一个属性,该属性将返回对当前活动页面的引用

如果您的主页继承自TabbedPage,则可以执行此操作

var mp = (MainPage)App.Current.MainPage;
var current = mp.CurrentPage;
编辑:基于粘贴在注释中的代码

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

我通过继承TabbedPage尝试了这一点,但现在在第一行,它说不能转换,第二行说App.cs(或App.xaml.cs)中没有“CurrentPage”的定义。当您分配MainPage时,它将是Current.MainPage指向的类。这个类是从TabbedPage继承的吗?它看起来是这样的:MainPage=newtabbedpage{Children={newmainpage(),newcompanysetup{BackgroundColor=Color.FromHex(“baf4d5”)},newchangepassword{BackgroundColor=Color.FromHex(“baf4d5”)};在你的编辑中,它的意思是没有“读出”(stacklayout)的定义。你验证过它返回的是你的MainPage类的实例吗?