在 "for" 循环中添加项目时,如何立即通知 DataGrid 绑定到 ObservableCollection?
How notify DataGrid binded to ObservableCollection immediately when item is added inside "for" loop?
假设我有这个数据网格:
<DataGrid x:Name="MyGrid" AutoGenerateColumns="True" ItemsSource="{Binding MyObservableList}"></DataGrid>
假设我有这个循环:
for (int i = 0; i < 10; i++)
{
MyObservableList.Add(i.ToString());
Console.WriteLine(i.ToString());
Thread.Sleep(500);
}
是否可以在插入项目后立即更改 wpf 列表?像“Console.Write”代码?我尝试了很多东西,比如实现“CollectionChanged”或“INotifyPropertyChanged”,但它们只在循环结束时更新DataGrid。注意:objective 是在循环过程中从 ObservableCollection 更新 DataGrid。任何具有任何类型的可观察列表的示例都可以。
不要在 UI 线程上休眠,因为它会阻止它更新 UI。使用任务异步等待:
for (int i = 0; i < 10; i++)
{
MyObservableList.Add(i.ToString());
Console.WriteLine(i.ToString());
await Task.Delay(500);
}
假设我有这个数据网格:
<DataGrid x:Name="MyGrid" AutoGenerateColumns="True" ItemsSource="{Binding MyObservableList}"></DataGrid>
假设我有这个循环:
for (int i = 0; i < 10; i++)
{
MyObservableList.Add(i.ToString());
Console.WriteLine(i.ToString());
Thread.Sleep(500);
}
是否可以在插入项目后立即更改 wpf 列表?像“Console.Write”代码?我尝试了很多东西,比如实现“CollectionChanged”或“INotifyPropertyChanged”,但它们只在循环结束时更新DataGrid。注意:objective 是在循环过程中从 ObservableCollection 更新 DataGrid。任何具有任何类型的可观察列表的示例都可以。
不要在 UI 线程上休眠,因为它会阻止它更新 UI。使用任务异步等待:
for (int i = 0; i < 10; i++)
{
MyObservableList.Add(i.ToString());
Console.WriteLine(i.ToString());
await Task.Delay(500);
}