Listview Daten dynamisch laden

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von Jojo0405.

    Listview Daten dynamisch laden

    Hallo Leute,

    hat jemand von euch eine Idee oder Erfahrungen damit, Daten dynamisch im Listview zu laden?
    D.h.: Zum Start des Programms werden erst die ersten 10 Datensätze geladen und beim Scrollen je nachdem weitere 10 usw.
    Es ist ausserordentlich umständlich, aber immerhin möglich, ein ListView im sog. "virtuellen Modus" zu betreiben.
    Und wenn, dann ruf doch immer gleich 300 - 1000 Datensätze ab - das macht normalerweise keinen merklichen Unterschied.
    Aber einen deutlich merklichen Unterschied macht, wenn das Scrollen bei alle 10 Datensätze laggt.

    Jetzt wichtige Frage - bitte vorrngig beantworten: Kannst du denn überhaupt schon Daten ins Listview laden?
    Ich merke es immer daran, dass wenn ich alle Datensätze lade, es sehr lange dauert bis alle im Listview sind. Da ich wenn ich einen Datensatz bearbeitet habe, das Listview neulade und dann zu dem selektierten Punkt zurück springe, dauert es halt auch dementsprechend lange bis er dorthin springt. Meine befürchtung ist nun, wenn ich nochmehr Datensätze in der DB habe, dieses Prozedere natürlich noch viel länger dauert.
    dann mach als erstes mal Messungen, etwa mit einer Stopwatch.
    Damit du aussagen treffen kannst, wie lange vom öffnen der Connection bis zum einlesen des ersten Datensatzes dauert, und wie lange der Rest dauert.
    Die Befüllung eines Listviews kann man übrigens stark beschleunigen durch Listview.Begin-/End-Update()

    Generell ist das ein absurder RoundTrip, bei einer einzelnen Änderung diese zur DB zu schicken, und dann die ganze View neu zu reloaden.
    Listview insgesamt ist zur Tabellen-Darstellung halt Müll.

    Aber mach erstmal die Messungen
    Okay, ich habe nun zumindest herausfinden können woher diese Perfomance einbußungen kommen. Jedes mal wenn ich einen Select aus der Tabelle gemacht habe, habe ich einen weiteren gemacht um die Stichwörter aus der Stichworttabellen zu holen. Ich habe dieses nunmal testhalber herausgenommen und siehe da - es geht ruck- zuck.