2010-02-23 6 views

Répondre

0

Je pensais que le mode virtuel était destiné à accélérer les performances de l'application en obtenant et en restituant les données à la demande. Si l'utilisateur fait défiler le document, cela n'implique-t-il pas que les données sont déjà chargées? Vous ne pouvez pas databind TextBox à une propriété dans code-behind et définissez simplement la valeur de cette propriété pendant que l'utilisateur fait défiler?

+0

Par exemple, seule la première page de données est chargée. Lorsque l'utilisateur fait défiler vers le bas, je veux une boîte de texte pour me demander la deuxième page et je vais le fournir. –

+0

ah, je vois ce que tu veux dire. comme la façon dont les sites Web chargent dynamiquement le contenu une fois que la première page est affichée en faisant défiler vers le bas. le temps d'aborder cette question! :) – Dave

+0

"Obtenir et afficher des données à la demande" est la virtualisation de données. "obtenir tout mais seulement rendre des données à la demande" est ce dont nous avons besoin la plupart du temps (virtualisation de l'interface utilisateur) – fjch1997

1

Pour utiliser la virtualisation intégrée (c'est-à-dire VirtualizingStackPanel utilisée par défaut par ListBox), vous devez pouvoir regrouper le contenu en éléments qui peuvent être chargés progressivement un à la fois (défilement logique). Faire cela pour un grand texte arbitraire impliquerait beaucoup de prétraitement pour calculer le retour à la ligne et diviser le texte en lignes ou en groupes de lignes. Une fois que vous faites cela, vous devrez utiliser un conteneur dérivé de ItemsControl au lieu d'un seul TextBox. Avez-vous besoin d'avoir du texte modifiable?

+0

Non modifiable mais être capable de sélectionner une partie de texte et de faire Ctrl + C serait bien. –

Questions connexes