[WPF] Récupérer le Parent d'un SelectedItem d'un Treeview bindé?
Chris_LaFouine
Messages postés109Date d'inscriptionmardi 13 avril 2004StatutMembreDernière intervention 4 juin 2008
-
4 juin 2008 à 10:44
ofonadroite
Messages postés130Date d'inscriptionmercredi 25 juin 2008StatutMembreDernière intervention13 août 2008
-
9 juil. 2008 à 11:57
Bonjour,
Je suis en train de migrer une de mes applis perso en .NET 3.5 avec interface en XAML et je suis bloqué!
Ce que je cherche à faire :
Récupérer l'objet Parent du noeud sélectionné et ce dans un Treeview ayant comme source un Binding!
Le contexte :
Dans mon Treeview (nommé tvFavoris), j'ai une arborescence d'artistes avec pour chacun, les titres favoris. Ex:
Dream Theater
- Home
Metallica
- Blackened
- Enter Sandman
- One
Pain of Salvation
- Home
- Imago
Mon Binding fonctionne à merveille et l'idée, c'est de pouvoir supprimer un titre quand on presse la touche suppr. J'arrive à récupérer l'objet sélectionné via le code suivant :
if(tvFavoris.SelectedItem is Titre
) {
Titre t = (
Titre)tvFavoris.SelectedItem;
}
}
}
L'objet bindé est un "ObservableCollection" du nom de "obsArtiste" et la classe "Artiste" a une propriété "Titres" de type "ObservableCollection<Titre>".
Voilà, vous savez à peu près tout!
Je pense que le plus simple est de trouver le Parent de type "Artiste" et d'agir directement sur l'objet, c'est ce qu'il y a de plus propre à faire. Sinon, je peux ajouter une propriété de type Artiste dans la classe Titre, mais c'est relativement moyen niveau conception!
ofonadroite
Messages postés130Date d'inscriptionmercredi 25 juin 2008StatutMembreDernière intervention13 août 20082 1 juil. 2008 à 12:29
Je suppose qu'avant d'appuyer sur "suppr" l'utilisateur sélectionne le nœud ?
Dans ce cas garder en mémoire le : tvFavoris.SelectedNode.Parent à chaque fois que quelqu'un clique sur un nœud (OnSelectedNodeChanged) pourrai peut être devenir utile, après tu le récupère au moment où l'utilisateur appuie sur "suppr" et l'affaire est dans le sac.
Enfin après je débute moi, donc dit moi au moins ce que tu en pense.