Das ist eine sehr merkwürdige Situation: Ich verwende L2S, um eine DataGridView zu befüllen.
Der Code folgt:
private void RefreshUserGrid()
{
var UserQuery = from userRecord in this.DataContext.tblUsers
orderby userRecord.DisplayName
select userRecord;
UsersGridView.DataSource = UserQuery;
//I have also tried
//this.UserBindingSource.DataSource = UserQuery;
//UsersGridView.Datasource = UserBindingSource;
UsersGridView.Columns[0].Visible = false;
}
Immer wenn ich L2S zum Hinzufügen/Löschen von Datensätzen aus der Datenbank verwende, wird die GridView problemlos aktualisiert.
Wenn jedoch jemand das Raster bearbeitet und einen Fehler macht, möchte ich, dass er eine Aktualisierungsschaltfläche drücken kann und seine Fehler durch erneutes Laden aus der Datenquelle gelöscht werden.
Ich kann es beim besten Willen nicht zum Laufen bringen.
Der Code, den ich derzeit für meine Aktualisierungsschaltfläche verwende, lautet wie folgt:
private void button1_Click(object sender, EventArgs e)
{
this.DataContext.Refresh(RefreshMode.OverwriteCurrentValues);
RefreshUserGrid();
}
Aber die verdammte GridView bleibt davon unberührt. Alles, was passiert, ist, dass die ausgewählte Zeile nicht mehr ausgewählt ist.
Ich habe versucht .Refresh()
, .Invalidate()
Ich habe versucht, die DataSource auf NULL zu ändern und wieder zurück (alle Vorschläge aus ähnlichen Beiträgen hier) ....none von es funktioniert. Das einzige Mal, wenn das Gitter aktualisiert wird, ist, wenn ich die App neu starten.
Ich muss etwas Grundlegendes übersehen haben, aber ich bin völlig ratlos, und meine Kollegen sind es auch.
Irgendwelche Ideen?
Merci !