[C#] Sortierung im DataGridView

Gast #2456526
Lesenswert?

Hallo,

So gehe ich vor, wenn ich Daten ändere:

ich fülle ein DataGridView mit Daten:
1
using (SQLiteDataAdapter db_da = new SQLiteDataAdapter(sql, db_connection))
2
   db_da.Fill(db_dataset);
3
   data_grid_1.DataSource = db_dataset.Tables[0].DefaultView;
Ich sortiere die Ansicht über den Spalten-Header.

Über ein "Ändern" Fenster kann ich die Daten einer Zeile ändern. Die 
änderungen werden direkt in der Datenbank (SQLite) gespeichert.
Der Inhalt der Zeile im DataGridView ändere ich, indem ich die alten 
Werte mit den neuen überschreibe.

Wenn ich nun eine Zeile darunter anklicke, Wird die geänderte Zeile 
Automatisch neu einsortiert. (Je nach angeklicktem Header)

Wie kann ich diese "verhalten" erzwingen?

Ich möchte die autoamtische einsortierung gerne über eine Methode 
aufrufen, um nicht immer nach dem Ändern irgendeine Zeile anklicken zu 
müssen.

Bisher habe ich nur die Methode:
1
data_grid_1.Sort(data_grid_1.Columns["name"],ListSortDirection.Ascending);
gefunden. Dafür müsste ich aber wieder einige Codezeilen mehr aufwenden, 
um abzufragen, welcher Spaltenheader angeklickt wurde um damit wieder 
meine aktuelle Sortierung zu erhalten.

Ich hoffe ihr versteht mein Problem und habt da eine triviale Lösung für 
mich. :-)

Mfg
  SE
Gast #2456605
Lesenswert?

Problem solved!

Kurz nach dem abschicken hab ich mit hilfe des Microsoft-Beispiels 
(DataGridViewColumnHeaderCell.SortGlyphDirection Property) diese Lösung 
entwickelt:
1
        public void sort_the_table()
2
        {
3
            ListSortDirection direction;
4
            if (Convert.ToString(data_grid_1.SortedColumn.HeaderCell.SortGlyphDirection) == "Ascending")
5
                direction = ListSortDirection.Ascending;
6
            else 
7
                direction = ListSortDirection.Descending;
8
            data_grid_1.Sort(data_grid_1.Columns[data_grid_1.SortedColumn.Index], direction);
9
        }

Was noch fehlt ist eine abfrage ob überhaupt eine Spalte gerade sortiert 
wird, aber sonst funktioniert es 100%tig.

Mfg
  SE

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren