Ich bin eine Listenansicht ähnlich den folgenden verwenden:UWP Listenansicht Hinzufügen von großen Datenmengen
<ListView Margin="10" Name="myListView">
<ListView.ItemTemplate>
<DataTemplate>
<WrapPanel>
<TextBlock Text="Name: " />
<TextBlock Text="{Binding Name}" FontWeight="Bold" />
</WrapPanel>
</DataTemplate>
</ListView.ItemTemplate>
Ich bin eine Liste aller Dateien in einem Verzeichnis erstellen; eine potenziell sehr große Anzahl. Das Laden des Datensatzes steht hier nicht in Frage; Ich verarbeite die Daten vor (Laden aus der Datei, Erzeugen einer temporären Liste <>, Sortieren, usw.), damit die IO-Leistung kein Problem ist.
Mit meiner vorbelegt Liste <> Objekt ich dann eine einfache foreach und fügen:
private async Task AddItemsToList()
{
foreach(MyObject item in List<MyObject>)
{
myListView.Add(item)
}
}
Die oben ein Mock-up ist, aber mein Code gleich ist.
Bei der Verarbeitung wird die Benutzeroberfläche nicht aktualisiert, wenn die einzelnen Elemente hinzugefügt werden. Es wird als ein großer Block angezeigt, sobald die Foreach abgeschlossen ist. AddItemsToList() ist wird nicht erwartet.
Ich habe ein paar Artikel gelesen (particularly this) und habe den Eindruck, dass UWP automatisch inkrementell laden und Platzhalter verwenden sollte.
Alle Vorschläge würden sehr geschätzt werden!
Andrew,
Anmerkung: Ich bin mir bewusst, UI-Virtualisierung würde für übermäßigen Datensätze (> 10.000 Artikel?) Ideal als described here.
Vielleicht ein Beispielprojekt mit Beispieldaten für nicht funktionierende Teile. Und ja, es wird empfohlen, die UI-Virtualisierung für große Datenmengen zu verwenden. –