更新WPF DataGrid中的单个行

gj3fmq9x  于 2022-12-14  发布在  其他
关注(0)|答案(2)|浏览(215)

我正在创建一个下载管理器,我的WPF DataGrid绑定到一个表示正在进行的下载的对象集合(在单独的线程中)。当我有多个下载正在运行时,每个下载都使用以下代码每秒更新其DataGrid项:

if (DateTime.Now > download.LastUpdateTime.AddSeconds(1))
{
    this.downloadsGrid.Items.Refresh();
    download.LastUpdateTime = DateTime.Now;
}

Datagrid.Items.Refresh()完成了这项工作,但它重建了整个DataGrid,导致所有下载在一秒钟内多次更新彼此的DataGrid行,我不希望出现这种行为。有没有办法刷新DataGrid中的特定行(项)?

hrysbysz

hrysbysz1#

如果将DataGrid绑定到ObservableCollection(它实现INotifyCollectionChanged),则在添加新项或移除项时,DataGrid将收到通知。此外,如果您只是更新集合中某个对象的属性,则该对象应实现INotifyPropertyChanged并引发PropertyChanged事件,该事件将告诉DataGrid只更新该值。

brjng4g3

brjng4g32#

你的下载类实现了INotifyPropertyChanged吗?如果没有,这就是为什么你必须调用refresh来查看网格中的变化。如果你实现了INotifyPropertyChanged,绑定将在值改变时更新。

相关问题