private void Build_Button(object sender, RoutedEventArgs e)
{
T.BuildStatus = "Building...";
BuildSelected(T.ListofTrucks);
T.BuildStatus = "Build Complete";
}
目前,我有一个标签,刻有我要显示"构建..."的t.buildstatus,而我的文件进行了编译,但只有在buildSelected方法完成后,标签才会更新。在继续进行事件调用之前,我该如何使此标签更新?
编辑:对象t正确实现了正确的propertychanged
让我们假设BuildSelected(T.ListofTrucks);
是CPU绑定的工作。如果在UI线程上调用它,它将阻止INotify
更新,即,由于UI线程繁忙,因此无法更新。最简单的修复:
private async void Build_Button(object sender, RoutedEventArgs e)
{
T.BuildStatus = "Building...";
await Task.Run(() => BuildSelected(T.ListofTrucks));
T.BuildStatus = "Build Complete";
}
或IO操作:
private async void Build_Button(object sender, RoutedEventArgs e)
{
T.BuildStatus = "Building...";
await BuildSelectedAsync(T.ListofTrucks));
T.BuildStatus = "Build Complete";
}
async Task BuildSelectedAsync(ListofTrucks x)
实现将根据IO操作和您确切的工作而有所不同。