IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Presentation Foundation Discussion :

TreeView et ParentNode


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Août 2006
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 582
    Points : 265
    Points
    265
    Par défaut TreeView et ParentNode
    Bonjour,
    j'ai un TreeView bindé à une collection : les noeuds parents sont des objets Tournoi et les enfants, des objets Tableau (seulement 2 niveaux dans la hiérarchie). Je peux caster la propriété SelectedItem du TreeView pour obtenir l'objet Tournoi ou Tableau sélectionné. J'aimerais faire de même pour la propriété Parent du SelectedItem, mais là, impossible de faire le cast : une erreur est signalée. La propriété Parent renvoie un TreeViewItem, mais comment récupérer l'objet correspondant ?

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par jacquesprogram Voir le message
    mais comment récupérer l'objet correspondant ?
    J'avoue aussi que c'est bizarre qu'on ne puisse pas le faire via la propriété SelectedItem de ton TreeView.
    Sinon une solution que je n'ai pas testée est la suivante : tu castes ton SelectedItem en TreeViewItem et ensuite regarde ce que contient le DataContext de ce dernier. S'il contient ton objet alors castes dans le type attendu.

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Août 2006
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 582
    Points : 265
    Points
    265
    Par défaut
    tu castes ton SelectedItem en TreeViewItem
    Ben... le problème, c'est que SelectedItem renvoie un objet du type correspondant à mon Binding : soit un objet Tournoi, soit un objet Tableau.
    Et il m'est impossible de caster ces objets en TreeViewItem, de même que l'inverse (ce que je veux faire). Bref, je tourne en rond...

  4. #4
    Invité
    Invité(e)
    Par défaut
    Et TemplatedParent ça donne quoi ?

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Août 2006
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 582
    Points : 265
    Points
    265
    Par défaut
    Non, je viens de trouver :
    la méthode TreeView.ItemContainerGenerator.GetFromItem(MonObjet) permet d'obtenir un TreeViewItem à partir d'un objet de la collection bindée et la méthode TreeView.ItemContainerGenerator.ItemFromContainer(TreeViewItem) fait l'inverse.
    Seulement, voilà, quand je fais :
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim item As TreeViewItem = MainGridTournois_tvTournoi.ItemContainerGenerator.ContainerFromItem(MainGridTournois_tvTournoi.SelectedItem)
    item vaut Nothing, alors que le SelectedItem contient bien l'objet sélectionné...

  6. #6
    Membre éprouvé Avatar de jmix90
    Homme Profil pro
    Consultant .Net
    Inscrit en
    Juillet 2007
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2007
    Messages : 576
    Points : 998
    Points
    998
    Par défaut
    Hello,

    Le soucis ici c'est que chaque TreeViewItem est lui même un ItemsControls et qu'il n'utilise pas l'itemGenerator du treeView racine. C'est pour cela que tu as toujours nul (sauf pour les éléments racines normalement).

    Edit : par contre tu peux t'abonner à l’évènement TreeViewItem.Selected sur le TreeView. Je pense que tu pourras t'en sortir avec ça...
    Jonathan ANTOINE - Découvrez mon livre: MVVM, de la découverte à la maîtrise.

    Microsoft MVP Client Application Development
    - MCPD Windows 4.0, etc.
    Mon blog : http://www.jonathanantoine.com

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. TreeView et menu contextuel...
    Par agh dans le forum Composants VCL
    Réponses: 6
    Dernier message: 06/04/2009, 12h23
  2. TreeView -> ajouter un child à un noeud donné
    Par fake dans le forum Composants VCL
    Réponses: 6
    Dernier message: 26/03/2003, 17h14
  3. Réponses: 5
    Dernier message: 09/01/2003, 11h55
  4. où y a t il un tutorial pour le Treeview ??
    Par silvermoon dans le forum C++Builder
    Réponses: 4
    Dernier message: 09/12/2002, 13h30
  5. [Pointer]Treeview.Data
    Par rbag dans le forum Composants VCL
    Réponses: 7
    Dernier message: 31/08/2002, 01h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo