Je me suis un peu codé sur ce point. J'écris un contrôle WPF personnalisé qui est similaire à TreeListView
décrit dans This MSDN article ainsi que de nombreux autres endroits sur le net. Une grosse pile de cette chose est coutumière à ce stade, et elle répond assez bien à mes objectifs, sauf sur le front de la virtualisation. Mes modèles TreeView
et TreeViewItem
ont tous deux utilisé VirtualizingStackPanel
s pour présenter leurs articles, et j'ai vérifié que tout ceci est créé comme prévu. La virtualisation fonctionne correctement sur les éléments de niveau racine (seuls les éléments de l'interface utilisateur pour ceux actuellement visibles dans le ScrollViewer
sont cuits), et le TreeView
s'occupe de ne pas générer les éléments pour les nœuds repliés. Le problème survient lors de l'expansion d'un nœud - tous les éléments sont cuits pour chaque enfant du nœud, même les milliers qui sont hors écran.virtualisation de conteneurs imbriqués (virtualizingstackpanel) à une barre de défilement parent unique dans WPF
Il me semblait que tout ce que je devais faire était en quelque sorte définir la propriété scrollowner des VirtualizingStackPanel
imbriquées internes de la même scrollview principale que le niveau de la racine VSP s'accroché par défaut, mais j'ai lu une affiche MSFT here disant que cela ne fonctionnera pas.
Malheureusement, cette chose est lente comme la boue sans la virtualisation se produisant, donc je dois trouver une sorte de solution. Toutes les suggestions seraient grandement appréciées.
Je sais que ça fait longtemps, mais vous souvenez-vous de ce que vous avez fait pour contourner cela? –
Je viens de réaliser que [le compte de David a été inactif pendant un certain temps] (http://stackoverflow.com/users/17784/david-hay?post-filters=All&post-sorts=Newest). Donc, pour ceux qui viennent après moi, [voir ma réponse ci-dessous] (http://stackoverflow.com/a/42842476/3063273) –