Bonjour à tous,
j'ai une treeview, avec des elements.
Je souhaiterais pouvoir trier les elements d'un de mes TreeViewItem par ordre alphabétique. Par exemple:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
Racine
-Niveau1
--Nouveau Dossier3
--Nouveau Dossier2
--Nouveau Dossier1
-Niveau2
--Nouveau Dossier3
--Nouveau Dossier2
--Nouveau Dossier1
-Autre niveau
--Nouveau Dossier3
--Nouveau Dossier2
--Nouveau Dossier1


En faisant un tri sur "Niveau2", je souhaiterais avoir:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
Racine
-Niveau1
--Nouveau Dossier3
--Nouveau Dossier2
--Nouveau Dossier1
-Niveau2
--Nouveau Dossier1
--Nouveau Dossier2
--Nouveau Dossier3
-Autre niveau
--Nouveau Dossier3
--Nouveau Dossier2
--Nouveau Dossier1

Mon probléme est que je n'arrive pas a faire un "Items.SortDescriptions".
Actuellement, chacun de mes "TreeViewItem" sont définis comme cela:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
dim monItem as TreeViewItem
Dim pan As StackPanel = New StackPanel()
            pan.Orientation = Orientation.Horizontal
            'Creation de l'icone
            Dim icon As BitmapImage = New BitmapImage(New Uri("pack://application:,,,/Images/NetObject.png"))
            'Creation du conteneur de l'image
            Dim image As Image = New Image()
            image.Height = 16
            image.Source = icon
            'Ajout de l'image au panel
            pan.Children.Add(image)
            'Ajout du texte au panel
            pan.Children.Add(New TextBlock(New Run("Test de l'Item")))
            'Ajout du panel à l'item
            e.Header = pan
            e.Tag = "Identifiant de l'item"

J'ai donc un TreeViewItem qui contient un StackPanel. Dans ce stack panel j'ai une image et du texte.
J'ai essayé de faire mon tri avec:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
monItem.Items.SortDescriptions.Clear()
monItem.Items.SortDescriptions.Add(New System.ComponentModel.SortDescription("Header", System.ComponentModel.ListSortDirection.Ascending))
monItem.Items.Refresh()
mais le problème ben c'est que çà ne fonctionne pas, il ne récupére pas le contenu texte du panel... Est-ce que quelqu'un aurait une idée?

Merci