2011-07-12 2 views
1

J'utilise VSTO pour créer un complément Outlook. J'ai un TreeView WPF avec une liaisonTri des noms de dossier dans Outlook VSTO

<HierarchicalDataTemplate ItemsSource="{Binding Folders}"> 

où des dossiers provient d'une propriété qui est définie comme

Folders = this.Application.ActiveExplorer().Session.Folders; 

La hiérarchie de dossiers affiche correctement, mais ne pas trier par ordre alphabétique comme il le fait dans Outlook. Je ne vois aucune méthode pour gérer le tri en mode natif. Je me demande simplement si quelqu'un d'autre a fait cela et comment ils l'ont fait.

Répondre

0

Je trierais la liste moi-même. En supposant que vous voulez trier par nom de dossier, faites ceci:

// Get the folders and sort them 
SortedList<string, Folder> sortList = new SortedList<string, Folder>(); 
foreach (Folder nextFolder in this.Application.ActiveExplorer().Session.Folders) 
    sortList.Add(nextFolder.Name, nextFolder); 
List<Folder> finalList = new List<Folder>(); 
finalList.AddRange(sortList.Values); 

// Set the sorted list as the source 
Folders = finalList; 
+0

Faire cela casserait la hiérarchie, correct? J'ai besoin que la hiérarchie complète des dossiers/sous-dossiers soit maintenue, juste triée. – anonymous

+0

Pourquoi cela briserait-il la hiérarchie? Les dossiers ont toujours les mêmes enfants. Il ne fait que modifier l'ordre des objets Dossier dans la collection et ne modifie aucun membre de Dossier. Si vous avez besoin de trier tous les nœuds enfants, faites le moi savoir et je modifierai ma réponse (une méthode différente serait nécessaire). –

Questions connexes