J'ai besoin de mettre en œuvre la fonctionnalité de recherche dans WPF TreeView
(fondamentalement, je dois me souvenir de la dernière sélection de l'utilisateur). J'ai essayé différentes approches suggérées mais rien ne fonctionne puisque virtualization
est activé dans mon TreeView
et les nœuds enfants sont chargés seulement quand un nœud parent est développé (chargement paresseux). Est-ce que quelqu'un connaît un échantillon ayant ces trois choses (Virtualization, Load-on-demand et Search) mis en œuvre ensemble?Besoin d'un exemple de recherche WPF TreeView avec Virtualization et Load On Demand
Répondre
Jetez un oeil à this MSDN forum thread, Bob de MS explique le problème dans l'implémentation de cette fonctionnalité.
la cause est le
VirtualizingStackPanel
essayer de générer un élément pour l'affichage, mais il a un générateur déjà dans votre projet pour générer les éléments élargis (dans le gestionnaire d'événementsOnTreeNodeExpanded
). Il se produit conflit avec deux générateurs.VirtualizingStackPanel
peut générer l'élément requis au moment de l'exécution, il les générer enBringIndexIntoView
méthode. Le code de la méthodeStartAt
est de vérifier le générateur, si ce n'est pas null, jeter l'exception "Impossible d'appelerStartAt
lorsque la génération de contenu est en progrès". Ainsi, l'exemple remplit tous les éléments à la source liée dans leInitializeComponent()
, et laissez la méthodeBringIndexIntoView
générer le conteneur pour l'élément.
Un échantillon reproduisant le problème est également joint dans ce fil.
donc à l'heure actuelle, il semble y avoir aucune solution pour cette approche :(
Avez-vous réussi à trouver une solution de contournement? J'ai le même problème –