如何访问当前TabbedPage的控件?

时间:2016-11-21 17:01:06

标签: xaml xamarin.forms

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

我需要知道如何访问当前的标签页,然后将这些项添加到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());
    }
}

此问题与此行有关,因为更改为标签页设置:

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

1 个答案:

答案 0 :(得分:-1)

TabbedPage有一个CurrentPage属性,它将返回对当前活动页面的引用。

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

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

编辑:根据您在评论中粘贴的代码

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