Xaml 如何在当前选项卡页上进行访问控制?
我有一个带有stacklayout的选项卡式页面,其中填充了一些子控件。该页面最初没有导航,但现在我添加了选项卡式页面(在app.cs中以编程方式创建),这意味着下面的方法无法填充所选选项卡式页面的stacklayoutXaml 如何在当前选项卡页上进行访问控制?,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 + "
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类的实例吗?