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 :

[WPF] Databinding Treeview WPF


Sujet :

Windows Presentation Foundation

  1. #1
    Membre averti
    Inscrit en
    Février 2008
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 23
    Par défaut [WPF] Databinding Treeview WPF
    Bonjour tout le monde,

    j'ai un soucis de Databinding sur un Treeview (XAML) en WPF
    Je suis en MVVM.

    Alors.
    J'ai trouvé plein de tuto sur comment databinder un treeview
    mais le soucis c'est que ce binding ce fais a l’instanciation du treeview.

    Moi je veux ajouter mon item (une liste) a la racine du treeview en passant par un bon vieux menu-> Fichier->ouvrir je selectionne mon fichier et pouf il s'ajoute dans mon treeview.

    ps: si je met mon fichier a pendant la creation de l'objet, le fichier s'ajoute bien comme il faut. mais ca reste immuable.

    Si vous avez des idee je suis prenneur.
    j'ai suivis ce lien pour commencer.


    Je passe par un INotifyPropertyChange.

    Merci.

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    tu peux faire une propriété quelque part qui faut null par défaut
    tu bind le treeview sur cette propriété, tu peux utiliser un datacontext sur le treeview si nécessaire
    et quand tu veux charger ton treeview, tu as juste à setter cette propriété avec ta collection si INotify ou dependencyproperty ca va s'afficher
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre averti
    Inscrit en
    Février 2008
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 23
    Par défaut [Resolu]
    Merci de ta réponse.

    C'est vrai qu'en ne mettant pas le code c'est dur de répondre.

    Pour ce que ca intéresse il faut que suivre le lien que je vous ai donné.

    En fait ce qu'il faut faire c'est de passer par une ObservableCollection

    Ou si vous avez une simple List: faite un ToList histoire de s'auto écraser.
    Exemple vite fais:

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    List<Info> linfos = new List<Info>();
     
    public void addInList(Info info){
    linfos.Add(info);
    linfos = linfos.ToList<Info>();
    myPropertyChange("maMethode");
    }
     
    public Info maMethode{ get{return linfos;}}

    Enjoy !

  4. #4
    Nouveau candidat au Club
    Inscrit en
    Juillet 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 2
    Par défaut Utilistation des objects pour un treeview
    Salut, j'ai pas mal galéré aussi au début et j'ai trouvé deux solutions pour faire une treeview avec icones dans les noeuds :

    1. Tu peux utiliser les classes des composants graphiques :
    Ton TreeViewItem a une propriété "Item" de type "Object" que tu peux implémenter avec d'autres objects graphiques.
    En VB.net/C# et WPF, tu peux créer un stackpanel dans lequel tu places un object image et un objet TextBlock graçe à sa propriété chidren qui est une collection d'objets. tu définis ensuite les propriétés de l'objet image et textblock puis tu les ajoute dans ton treeview.

    2. Le DataBinding n'est pas mal mais lorsque tu les remplis dans ton code VB ou C#, n'oublies pas de définir la proriété ItemSource de ton treeview.
    Le databinding a un inconvenant c'est que tu dois gérer l'aspect hiérarchique dans ton databinding lui-même. Autrement dit, tu dois avoir un objet que je nomme souvent "Child" que j'instancie dans le constructeur de mon binding. cet objet va permettre à la classe de s'instancier elle-même si tu as besoin de noeud enfant.

    Je ne sais pas si c'est clair mais n'hésites pas à me recontacter en cas de besoin, j'ai quelques exemples de codes.

    cordialement.

  5. #5
    Candidat au Club
    Inscrit en
    Octobre 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 2
    Par défaut
    Salut,

    Moi je débute actuellement en C# et je souhaiterais lier mon TreeView à une classe qui est chargée de loader l'assembly un fichier dll pour affichier le contenu dans le TreeView. Mon problème c'est que j'arrive pas à faire la liaison entre le TreeView et la classe source. Pouvez-vous donner des exemples de codes pour qu'on sache concrètement comment celà se passe ?

    Merci.

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

Discussions similaires

  1. desselectionner item dans treeview wpf
    Par aurel_le_ouf dans le forum Windows Presentation Foundation
    Réponses: 1
    Dernier message: 27/10/2010, 11h27
  2. [WPF] Databinding sur 2 combox
    Par MiniCesc dans le forum Windows Presentation Foundation
    Réponses: 7
    Dernier message: 23/09/2010, 16h01
  3. [WPF] Databinding et combinaison de Treeview et Listview
    Par Mythrandil dans le forum Windows Presentation Foundation
    Réponses: 5
    Dernier message: 06/03/2009, 14h31
  4. [WPF DataBinding] Binding un peu compliqué
    Par thanatoster dans le forum Windows Presentation Foundation
    Réponses: 13
    Dernier message: 16/04/2008, 08h21
  5. [WPF] databinding et tri
    Par MrCyprom dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 14/05/2007, 14h16

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