2010-04-20 6 views
0

Pour obtenir les articles de l'enfant en tant que chaîne i utilisé le code suivantComment vérifier l'article cliqué est élément parent dans Treeview

private void treeview1_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e) 
     { 
      if (treeview1.SelectedItem != null) 
      { 
       Animal bar = (Animal)treeview1.SelectedItem; 
       string str = bar.Name; 
       int boxty = bar.BoxType; 
       int boxno = bar.BoxNo; 
      } 

     } 

Il fonctionne très bien .Mais quand je clique sur parent (au lieu de + signe), il va à ce code et montre error.Ofcourse im Casting SelectedItem à ma liste-Animal. Mais je ne veux pas cela.Je dois vérifier, si l'élément clciked est parent, si c'est le cas alors je vais passer ce codage.Seulement lorsque je clique sur les éléments enfants, il ira à ce codage. Comment puis-je faire cela? Comment puis-je identifier l'élément sélectionné est parent.

+0

cela produit-il une erreur parce que lorsque vous cliquez sur le symbole +, vous n'avez rien sélectionné dans votre treeview? – DrLazer

+0

Impossible de convertir l'objet de type 'MS.Internal.Data.CollectionViewGroupInternal' en type 'GroupingTreeView.Animal'. J'obtiens cette erreur. Quand j'appuie sur le signe +, il ne va pas à cette fonction. Il ne fait qu'élargir les éléments enfants. – Anu

Répondre

0

J'utilise le code suivant de la ligne

treeview1.Items.IndexOf(treeview1.SelectedItem) 

Il renvoie -1 lorsque nous choisissons les éléments de cild, et il retourne 1,2.etc, dépend de quel élément parent est obtenir cliqué.

J'ai donc utilisé ceci pour vérifier si l'élément clciked est enfant. Quelle erreur obtenez-vous lorsque ce code est exécuté?

if (treeview1.Items.IndexOf(treeview1.SelectedItem) == -1) 
       { 
        Animal bar = (Animal)treeview1.SelectedItem; 
        string str = bar.Name; 
        int boxty = bar.BoxType; 
        int boxno = bar.BoxNo; 
       } 
Questions connexes