我有一个masterdetailpage和一个作为根页面的内容页面,所以为了从我的masterdetailpage运行一个函数,我通过一个公共方法加载它。但是当我这样做时,它会在我在日志中输入内容时起作用,但是当我尝试使某些内容真正发生时,例如更改标签的文本或者做出更大的内容等等。它不会运行。即使方法内的System.Diagnostics.Debug运行。我的代码如下所示:
我的主页:
knappen.Clicked += (object sender, EventArgs e) => {
var ourStartPage = new StartPage ();
ourStartPage.InitThisPage();
}
这是我的内容页面(StartPage),其中包含加载我想加载的特定函数的公共方法:
public void InitThisPage()
{
LoadData();
}
async void LoadData()
{
label.TextColor = Color.Red; //so this does not change color
System.Diagnostics.Debug.WriteLine ("Does it reach this?"); //but it reaches this and types this out in the log.
}
所以上面,它到达我在日志中键入的内容,但标签的颜色不会改变。我尝试了不同的标签,按钮,图像等,但无论我在日志中运行它做什么,似乎都没有运行。
这里的问题是什么?
答案 0 :(得分:1)
尝试在主UI线程上更新标签的颜色:
InvokeOnMainThread ( () => {
label.TextColor = Color.Red; //so this does not change color
});