我有一个带有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;
答案 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;