Sortieren ungebundener DataGridView-Spalten alphanumerisch in der Windows Forms-App

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Sortieren ungebundener DataGridView-Spalten alphanumerisch in der Windows Forms-App

by Guest » 28 Dec 2024, 18:53

Ich kann anscheinend keine aktuelle, aktualisierte Antwort finden. Die Grundfunktionalität funktioniert bei mir, da eine Liste automatisch wie folgt sortiert wird:

Code: Select all

001.15
1
2
3
some
string
aber mein größtes Problem ist, wenn ich eine Zahl hinzufüge, sagen wir „100“, sieht meine Liste jetzt wie folgt aus:

Code: Select all

001.15
1
100
2
3
some
string
Die einzelne Spalte, nach der ich sortieren möchte, „Test-ID“, enthält Zeichenfolgen, Ganzzahlen und Doppelzahlen.
Ich habe viele Dinge ausprobiert, einschließlich einer Methode, die jedes Mal aufgerufen wird, wenn eine Taste gedrückt wird:

Code: Select all

private void SortDVG(object sender, DataGridViewSortCompareEventArgs e)
{
if (e.Column.Index == 0)
{
e.SortResult = int.Parse(e.CellValue1.ToString()).CompareTo(int.Parse(e.CellValue2.ToString()));
e.Handled = true;
}
}
mit einer Referenz in einem Button klicken als

Code: Select all

SortDVG(dataGridView1, (DataGridViewSortCompareEventArgs)e);
aber dies löst einen Laufzeitfehler aus, da es als Mausereignis registriert wird, was für mich Sinn macht.

System .InvalidCastException: „Objekt vom Typ „System.Windows.Forms.MouseEventArgs“ kann nicht in den Typ „System.Windows.Forms.DataGridViewSortCompareEventArgs“ umgewandelt werden.“

und Ich habe sogar nur eine Zeile ausprobiert (diese war der Grund, weshalb ich überhaupt die Bestellung aufgegeben habe)

Code: Select all

dataGridView1.Sort(dataGridView1.Columns[0], ListSortDirection.Ascending);
Im Moment bin ich etwas ratlos und versuche, in die richtige Richtung zu weisen

Top