ListViewItemSorter Zuweisung beenden



  • Ich habe folgendes Problem:
    In einer ListView (listViewArtikel) werden Einträge aus einer Datenbank aufgelistet.
    Über den ListViewItemSorter und der IComparer Schnittstelle können die Spalten sortiert werden. Der ListLiew weise ich dies entsprechend zu.

    private: System::Void listViewArtikel_ColumnClick(System::Object^  sender, System::Windows::Forms::ColumnClickEventArgs^  e) 
    		 {
    			 //das Sortierkriterium umdrehen
    			 Sortierreihenfolge = !Sortierreihenfolge;
    			 //eine neue Instanz der Klasse für die Sortierung erstellen
    			 Sortieren ^spaltenSortieren = gcnew Sortieren(e->Column, Sortierreihenfolge);
    			 //die Sortierung zuweisen
    			 listViewArtikel->ListViewItemSorter = spaltenSortieren;
    			 //sortieren
    			 listViewArtikel->Sort();
    		 }
    

    Dies funktioniert so weit alles auch wunderbar.
    Wenn die ListView jetzt aber neu eingelesen werden soll, nachdem sie einmal sortiert wurde, dauert es extrem lange (Größe der ListView ca. 4000 Zeilen), da beim erneuten Einlesen jede Zeile erneut verglichen wird.

    Meine Frage ist, wie kann ich die Zuweisung

    listViewArtikel->ListViewItemSorter = spaltenSortieren;
    

    wieder rückgängig machen, so dass beim erneuten Einlesen nicht gleich sortiert wird?



  • Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum C++/CLI mit .NET verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • listViewArtikel->ListViewItemSorter = 0;
    


  • Funktioniert leider nicht, der Compiler spuckt dann folgende Meldung aus:

    error C2664: 'System::Windows::Forms::ListView::ListViewItemSorter::set' : cannot convert parameter 1 from 'int' to 'System::Collections::IComparer ^'



  • Noch einmal ein wenig probiert.
    Jetzt funktioniert es, und es ist eigentlich ganz einfach 🙂
    Danke für den Denkanstoß

    listViewArtikel->ListViewItemSorter = nullptr;
    

Anmelden zum Antworten