我有以下代码来更新我的UI。
private async void startButton_Click(object sender, EventArgs e) {
progressBar.Maximum = 100;
progressBar.Step = 1;
fileListView.Items.Clear();
var progress = new Progress<ProgressData>(pdata => {
currentFileLabel.Text = pdata.CurrentFile;
totalFilesLabel.Text = pdata.CurrentIndex + "/" + pdata.FileCount;
progressBar.Value = pdata.Progress;
fileListView.Items.Add(new ListViewItem(new string[] {
pdata.CurrentIndex.ToString(),
pdata.OldFileName,
pdata.NewFileName,
pdata.FileExtension
}));
});
await Task.Run(() => Rename(progress));
}
此代码未正确更新 currentFileLabel 和 totalFileLabel 。它们仅在重命名方法完成其工作后更新。但是 fileListView 和 progressBar 会在没有问题的情况下进行更新。
如果我删除
fileListView.Items.Add方法,现在标签也会正确更新。
如何正确更新所有UI控件?