Ich habe eine DataGrid
gebunden an eine DataTable
Eigenschaft. Die Daten stammen aus dem Netzwerk in Bulks. Gibt es eine Möglichkeit, WPF
mitzuteilen, dass Daten an dieses Raster angehängt werden, ohne jedes Mal, wenn neue Daten eintreffen, die vorhandenen Zeilen neu zu laden?Wie fügt man Daten an DataGrid an?
Ich habe versucht, neue Zeilen in die DataTable
und DataGrid.Items.Refresh()
aufrufen, aber Sie können tatsächlich sehen, dass die gesamten Daten jedes Mal neu geladen wird, wenn neue Daten eintreffen.
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();
}
Was Sie mit _bedeuten, aber Sie können tatsächlich sehen, dass die ganzen Daten jedes Mal neu geladen werden, wenn neue Daten eintreffen? Und 'DataGrid.Items.Refresh()' nur Steuerelement neu zeichnen. – Fabio
@Fabio Ich meine, dass nach ein paar tausend Zeilen hinzugefügt wurden - Hinzufügen von ein paar mehr Zeilen macht die UI träge und reagiert nicht, als ob es versucht, die vorhandene Tabelle zu löschen und die gesamte geänderte Tabelle auf das Steuerelement DataGrid laden. Ich habe mich gefragt, ob es eine Möglichkeit gibt, dem Framework mitzuteilen, dass die vorhandenen Zeilen im Steuerelement verbleiben sollen und nur ein paar Zeilen hinzugefügt werden sollten. – Shmoopy
Wie haben Sie Ihre Daten an das Grid gebunden? Wenn Sie eine 'ObservableCollection' verwenden, sollte * * * einfach funktionieren. – ChrisF