2010-02-23 13 views

Antwort

0

Ich dachte, der virtuelle Modus sollte die Anwendungsleistung beschleunigen, indem nur Daten angefordert und gerendert werden. Wenn der Benutzer durch das Dokument scrollt, heißt das nicht, dass die Daten bereits geladen sind? Könnten Sie die TextBox nicht an eine Eigenschaft in Code-Behind binden und lediglich den Wert dieser Eigenschaft festlegen, während der Benutzer scrollt?

+0

Zum Beispiel wird nur die erste Seite der Daten geladen. Wenn der Benutzer nach unten scrollt, möchte ich, dass das Textfeld mich nach der zweiten Seite fragt, und ich werde es bereitstellen. –

+0

ah, ich verstehe was du meinst. So wie Webseiten dynamisch Inhalt laden, sobald die erste Seite durch Scrollen nach unten angezeigt wird. Zeit, diese Frage zu markieren! :) – Dave

+0

"Daten nur auf Anforderung abrufen und rendern" ist Datenvirtualisierung. "Alles wird benötigt, nur einige Daten auf Anforderung zu übertragen" ist das, was wir die meiste Zeit benötigen (UI-Virtualisierung) – fjch1997

1

Um die integrierte Virtualisierung verwenden zu können (z. B. VirtualizationStackPanel, die standardmäßig von ListBox verwendet wird), müssen Sie den Inhalt in Elemente aufteilen, die nach und nach nacheinander geladen werden können (logisches Scrollen). Um dies für einen beliebigen großen Text zu tun, würde eine große Vorverarbeitung erforderlich sein, um Zeilenumbruch zu berechnen und den Text in Zeilen oder Gruppen von Zeilen aufzuteilen. Sobald Sie das tun, müssen Sie einen Container verwenden, der von ItemsControl anstelle von einem einzelnen TextBox abgeleitet wird. Benötigen Sie einen editierbaren Text?

+0

Nicht editierbar, aber in der Lage, ein Stück Text auszuwählen und Strg + C zu tun wäre gut. –

Verwandte Themen