Bonjour,
J'utilise actuellement un treeview.
J'ai à peu prêt 4000 treeviewItem à l'intérieur.
Le problème vient du temps d'affichage du treeview, celui-ci est très long.
Auriez vous une idée pour augmenter les performances d'affichages ?
Merci
Bonjour,
J'utilise actuellement un treeview.
J'ai à peu prêt 4000 treeviewItem à l'intérieur.
Le problème vient du temps d'affichage du treeview, celui-ci est très long.
Auriez vous une idée pour augmenter les performances d'affichages ?
Merci
Salut,
tu as plusieurs pistes, dépendant de ce qu'il y a derrière ton treeview :
- à essayer en premier, le VirtualizingStackPanel (propriété de dépendance VirtualizingStackPanel.IsVirtualizing à true, voire ItemsPanelTemplate à modifier)
- peu d'items à chaque niveau, mais très profond (beaucoup de sous-niveaux) : là tu cherches à charger "à la demande" (quand un item est déplié tu charges ses enfants)
- selon les données qu'il y a derrière : tu essaies de charger les données à la demande, ou tu optimises leur chargement dans les couches métier, ou encore tu les charges dans un thread de travail (attention à synchroniser avec le dispatcher du treeview pour éviter les InvalidOperationException)
un exemple ici (WPF, à adapter à tes besoins) :
http://www.codeproject.com/KB/tree/T...gTreeView.aspx
slt
merci de ta réponse
Je regarde actuellement pour charger les dossiers enfants quand on selectionne le dossier parent.
J'ai trouvé ce lien : http://blogs.silverlight.net/blogs/j...wextended.aspx
Dans le chapitre 3 il parle de créer une classe dépendant de l'objet Treeview.
Mais je n'arrive pas a le mettre dans mon code XAML, il me dit de quoi il me manque une librairie, bizarre ?
Laquelle, de librairie ? Tu as bien ajouté les xmlns comme dans l'exemple de ton lien ("common" pour System.Windows.Controls par ex.) ?
Pour info, la virtualisation d'elements hierachisés ne fonctionne pas en silverlight. C'est situation est valable en SL3 et certainement en SL4, hélas.
http://bea.stollnitz.com/blog/?p=42
merci pour vos réponses.
sinon oui je pars sur la solution de charger les enfants à la demande.
Sur un click sur un dossier parent, je vais allez rechercher les enfants en base de données et les ajouter comme sous dossiers à mon dossier parent.
Pensez vous que ce soit réalisable ?
Merci
Oui carrément, le top c'est par exemple d'utiliser des ObservableCollection<T> dans ta couche métier, comme ça tu bindes la propriété "Items" des TreeViewItems dessus (avec un HierachicalDataTemplate).
merci beaucoup pour vos réponses
Et Joyeuses Fêtes !!!
Partager