微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在“ for”循环中添加项目时,如何立即通知DataGrid绑定到ObservableCollection?

如何解决在“ for”循环中添加项目时,如何立即通知DataGrid绑定到ObservableCollection?

假设我有此数据网格:

result=structure(list(ADR.N.14.0 = c(8140010250001,8140010250001,8140010250002,NA,NA),NOMYAR.N.16.6 = c(1,1,KOFPOR1.N.16.6 = c(7,3,10,POR1.C.254 = c("о","BB","о","",""),VOZPOR1.N.16.6 = c(80,70,45,VYSPOR1.N.16.6 = c(24,22,17,DEMPOR1.N.16.6 = c(36,26,16,POLNOT1.N.16.6 = c(0.6,0.9,ZAPZAH1.N.16.6 = c(210,160,NA)),class = "data.frame",row.names = c(NA,-10L))

假设我有这个循环:

<DataGrid x:Name="MyGrid" AutoGenerateColumns="True" ItemsSource="{Binding MyObservableList}"></DataGrid>

插入项目后是否可以立即更改wpf列表?像“ Console.Write”代码一样?我尝试了很多类似实现“ CollectionChanged”或“ INotifyPropertyChanged”的方法,但是它们仅在循环结束时更新数据网格。注意:目标是在循环过程中从ObservableCollection更新DataGrid。任何带有任何可观察列表的示例都是可以的。

解决方法

不要在UI线程上休眠,因为它会阻止它更新UI。使用任务异步等待:

for (int i = 0; i < 10; i++)
{
    MyObservableList.Add(i.ToString());
    Console.WriteLine(i.ToString());
    await Task.Delay(500);
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。