Forum: PC-Programmierung [C#] Sortierung im DataGridView


von SE (Gast)


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

von SE (Gast)


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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.