2017-10-11 10 views
0

J'ai une arborescence WPF dans mon application. En cela, je montre des dossiers et des fichiers. Comme ce sont des éléments différents, j'utilise l'approche de la collection composite pour lier les éléments à l'arborescence comme suggéré dans this link.Stockage de SelectedItem à partir de WPF Treeview avec les éléments de la collection composite

Maintenant, j'ai besoin de stocker le SelectedItem de WPF Treeview. Pour cela, je veux définir une propriété dans ViewModel. Mais, le problème est que si vous définissez la propriété avec le type FolderItem, cette propriété n'est pas atteinte lorsque je sélectionne un fichier dans l'arborescence et vice-versa.

J'ai besoin d'un moyen de stocker l'élément sélectionné, qu'il s'agisse d'un dossier ou d'un fichier.

Toute aide est fortement appréciée.

Cordialement, kvk938

Répondre

0

Vous pouvez soit changer le type de la propriété à object ou un type à la fois votre classe FolderItem et votre File hérite de (ou mettre en œuvre si elle est un type d'interface):

public interface IItem 
{ 
    string Name { get; } 
} 

public class FolderItem : IItem 
{ 
    public string Name { get; set; } 
    public List<File> Files { get; set; } 
} 

public class File : IItem 
{ 
    public string Name { get; set; } 
} 

Voir Modèle:

public IItem SelectedItem { get; set; }