Wie kann ich ein "Datagrid Like" Control horizontal und vertikal auf XAML / C # (Windows 8.1 - WinRT) virtualisieren?

9

Problem

Ich versuche, ein "Datagrid like" -Steuerelement in einer Universal App (WinRT) zu erstellen.
Dieses Steuerelement muss viele Elemente (Cells) aufweisen, hat aber nur einen kleinen View-Bereich, also ist es ein perfekter Kandidat für die Virtualisierung, die es definitiv braucht.

Wie kann ich Virtualisierung sowohl horizontal als auch vertikal für so etwas haben?

c#

Dinis Vieira 01.04.2015, 18:44
quelle

2 Antworten

1

Ich habe das nicht getan, aber ein paar interessante Artikel gefunden:

1) Ihr Gitter befindet sich im ScrollViewer. Wie wäre es mit der Verwendung von angehängten Eigenschaften wie VirtualizingStackPanel.VirtualizationMode?

Link: Ссылка

2) Wenn previous für Sie nicht funktioniert, können Sie Ihren eigenen Virtualisierungsmechanismus schreiben, indem Sie den incremental virtualization article verwenden (ich denke wirklich, dass sie dafür verwendet werden können).

Link: Ссылка

    
Cheese 08.04.2015 06:32
quelle
1

Ich würde einen völlig anderen Ansatz vorschlagen: Anstatt Ihre große Datenmenge in irgendeine Form der Benutzeroberflächensteuerung zu setzen, beschränken Sie einfach die GridView (oder das von Ihnen bevorzugte Steuerelement) auf die Größe des Ansichtsbereichs. Wenn der Benutzer "über die Daten bewegt", bewegt er den versteckten Bereich effektiv über Ihren Ansichtsbereich. Das heißt, Sie ändern einfach den Inhalt der Zellen in Ihrem festen Ansichtsbereich entsprechend. Wenn der Benutzer zum Beispiel die Daten 10 Spalten nach rechts verschiebt, verschiebt man den Inhalt im Ansichtsbereich um 10 Spalten und füllt die linke Seite mit 10 frischen Datenspalten.

Sie müssen die Daten für den verborgenen Bereich in einer tabellenähnlichen Datenstruktur aufbewahren, damit sie nach Zeile / Spalte leicht zugänglich ist.

Im Hinblick auf die Implementierung würde ich die sichtbaren Daten zu einer Eigenschaft des Ansichtsmodells machen. Das GridView bindet an diese Eigenschaft. Wenn der Benutzer "über die Daten bewegt", kopieren Sie einfach Daten aus Ihrem tabellenartigen Datencache in diese Ansichtsbereichseigenschaft im Ansichtsmodell.

Ich habe wenig Informationen über Ihren tatsächlichen Anwendungsfall und den erwarteten Look & amp; Gefühl Ihrer Kontrolle, so dass meine Nachsaugung ein langer Schuss sein könnte. Angesichts der enormen Menge an Daten, die Sie anzeigen müssen, kann es jedoch einen Versuch wert sein.

    
Silverstein 11.04.2015 01:05
quelle