我有一个DataGrid
绑定到DataTable
属性。 数据来自大容量网络。 有没有办法告诉WPF
将数据附加到该网格,而无需在每次新数据到达时重新加载现有线路?如何将数据追加到DataGrid?
我试着向DataTable
添加新行并调用DataGrid.Items.Refresh()
,但实际上您可以看到每次新数据到达时都会重新加载整个数据。
XAML:
<Grid>
<dg:DataGrid ItemsSource="{Binding MyDataTable} x:name="MyDataGrid"/>
</Grid>
C#:
void NewDataArrived()
{
foreach (var line in NewData)
{
MyDataTable.Rows.Add(line);
}
MyDataGrid.Items.Refresh();
}
你是什么意思_但你实际上可以看到每次新数据到达时重新加载整个数据_?而'DataGrid.Items.Refresh()'只是重绘控件。 – Fabio
@Fabio我的意思是,在添加了几千行之后 - 添加更多的行会导致UI缓慢且无响应,就好像它试图清除现有表并将整个已修改表加载到DataGrid控件一样。我想知道是否有一种方法可以告诉框架现有的线应该保存在控件中,并且只应添加几行文字 – Shmoopy
您如何将数据绑定到网格?如果你使用'ObservableCollection',它*应该*“只是工作”。 – ChrisF