none
Sélection d'un noeud dans un treeview RRS feed

  • Question

  • Bonjour,

     

    J'ai, dans une application XAML, un treeview dont les données sont liées à une source de données :

    Arbre.ItemsSource = listeCore;

     

    Mon problème est que je voudrais sélectionner l'une des nodes du treeview, mais impossible de trouver comment faire.

     

    Pour sélectionner un node dans un treeview n'utilisant pas de source de données, mais dont les éléments sont ajoutés avec des additems "classiques", je fais comme suit :

    foreach (TreeViewItem it in item.Items)

    {

    if (it.Tag == monObjetRecherché) {it.IsSelected = True;}

    }

     

    Oui mais voila, quand on utilise une source de données, on ne récupère plus une liste de TreeViewItems... mais des objets métiers n'ayant aucun rapport avec le treeview...

    Bref, je suis un peu perdu, et les méthodes/propriétés proposées par le TreeView (SetValue, SelectedItem, ...) sont soit obscures, soit en lecture seule...

     

    Quelqu'un aurait-il une solution ?

     

    Merci d'avance !

    samedi 5 mai 2007 00:53

Réponses

Toutes les réponses

  • Bonjour

     

    J'ai rencontré le même problème, j'ai provisoirement résolu le problème de la façon suivate :

     

    private void ExpandOrCollapseAll(ItemsControl itemControl, bool ExpandNodes)

    {

       foreach (MaClasseMetier monObjet in itemControl.Items)

       {

          TreeViewItem theNode = itemControl.ItemContainerGenerator.ContainerFromItem(monObjet) as TreeViewItem;

          if (theNode != null)

             {

                   theNode.IsExpanded = ExpandNodes;

                   ExpandOrCollapseAll(theNode, ExpandNodes);

             }

        }

    }

     

    appel :

              ExpandOrCollapseAll(monTreeView, true);

     

     

    ...en attendant une méthode ExpandAll sur la classe itemControl

    jeudi 7 juin 2007 12:21
  • bonjour.
    je deterre ce post car j'ai le même problème.
    non pas le fait de reduire ou d'etendre le treeview mais bien de choisir par le code l'item sélectionné.
    selectedItem étant en read only, quelqu'un sais comment choisir l'item qui sera selectionné ?

    merci
    jeudi 6 septembre 2007 15:51
  • Avez-vous essayé:

     

    this.treeview1.Items[1].IsSeletected = true;

    jeudi 6 septembre 2007 17:36
  • merci.
    c'est apperement ca. j'ai pas trop le temps de verifier mais j'ai vu cette ligne sur le net lors d'une autre recherche.
    vendredi 7 septembre 2007 07:24
  • Bonjour,

     

    Personne ne sait c'est quoi l'equivalent en asp.net 2.0 de

    TreeView.SelectedNodeIndex                           (asp.net 1.1)

    TreeView.getNodeFromIndex(location)              (asp.net 1.1)

    ID_pere = tn.ID                                               (asp.net 1.1)

     

    je sais que asp.net 1.1 traite les index et asp.net 2.0 traite les objet mais je pioche dans le net depuis plus d'une semaine et je trouve rien qui me convient

     

    Je dois migrer de la version .net 1.1 à la version .net 2.0 et c'est super galaire

     

    Merci de me répondre

    lundi 17 décembre 2007 16:48