Sortierung Decimal Listview Column

PhoenixDH

Erfahrenes Mitglied
Hallo zusammen,

ich habe ein Problem mit dem Sortieren einer Listview Spalte.
In der Spalte stehen nur Ganzzahlen oder ein leeres Feld.
Jetzt würde ich das gerne so sortieren das zuerst die leeren Felder kommen und dann die Ganzzahlen, richtig auf- oder abwärts sortiert.

Ich habe es folgendermaßen probiert:
Code:
compareResult = Decimal.Compare(listviewX.SubItems(ColumnToSort).Text, listviewY.SubItems(ColumnToSort).Text)

Aber sobald irgendwie eine leere Zelle kommt steigt er aus.

Hat jemand einen Tip wie ich das gestallten könnte?

Danke!
 
Hallo PhoenixDH,

Leere oder null-werte kannst du mit Decimal.Compare nicht vergleichen. Versuchs mal so:
(Code ungetestet)

C#:
compareResult = MyCompare( listviewX.SubItems(ColumnToSort).Text, listviewY.SubItems(ColumnToSort).Text);


int MyCompare(String a, String b)
{
	if(String.IsNullOrEmpty(a))
	{
		if(String.IsNullOrEmpty(b))
			return 0;
		return -1;
	}

	if(String.IsNullOrEmpty(b))
		return 1;
		
	return  Decimal.Compare(Decimal.Parse(a), Decimal.Parse(b));
}


Gruß
 
Zurück