我在这里阅读了很多关于从静态方法访问标签和UI元素的问题,但我还没有找到任何可以应用于我的项目的解决方案。
在我的应用程序的主窗口中,我有一个方法在另一个类中调用另一个方法。该方法同步一些XML读数并将它们存储到本地文件中。
这就是我希望它的行为:
我从命名空间内的任何地方调用此方法(位于我的MainWindow源文件中):
public static async void UpdateAllLocalFeedsAsync()
{
lblStatusBar.Content = "Working-working etc...";
var result = await ThisFunctionsSyncronizesXmlWithLocalFiles(Parameter);
lblStatusBar.Content = "The job has been done.";
打印一些信息,告诉用户将要发生什么,做些什么,并告诉用户它已经完成。
此时,只要我排除了lblStatusBar-rows,一切都像丝绸一样顺畅。但正如预期的那样,当我尝试更改标签中的内容时,我收到以下错误:
无法在静态上下文中访问非静态字段“lblStatusBar”
如果我尝试使这些方法非静态,那么异步/等待能力似乎失败了,要求它们是静态的。
但我确实找到了this answer,这里就是SO ......
static void SetTextboxTextSafe(int result)
{
label1.Text = result.ToString();
}
...我很遗憾不明白如何在标签上申请。如果我不够清楚,我很抱歉,但我希望你理解我的问题。