Bonjour
J’ai un pti bug que je ne comprends pas.
Le but du code est de lier des labels et des zones de texte à des objet ER_Pli, eux-mêmes contenus dans une propriété Pli des nodes d’un TreeView. Quand un clique sur un nœud du treeview, le databinding a lieu.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 private void treeView1_AfterSelect(object sender, TreeViewEventArgs e) { ClearLabelEtTextBoxs(); if ((treeView1.SelectedNode) is NodePli) { ER_Pli pli; pli = (ER_Pli)((NodePli)e.Node).Pli; labIDBO.DataBindings.Add("text", pli, "Id"); labCaptionIdParent.Text = "Id Lot"; labIDParent.DataBindings.Add("Text", pli, "IdLot"); //tbNomEntité.DataBindings.Add("Text", pli, "IdLot"); tbNomEntité.DataBindings.Add("Text", pli, "Nom"); }
Il devrait, plutôt. Cela fonctionne correctement jusqu’à la ligne « tbNomEntité.DataBindings.Add("Text", pli, "Nom"); », où j’ai une erreur me disant :
NodePli est le descendant de TreeNode qui contient l’objet « pli » qui est lié dans le databinding. Je récupère l’objet « pli » dans la ligne « pli = (ER_Pli)((NodePli)e.Node).Pli; » . Je ne comprends pas pourquoi il essaie de faire un cast de NodePli vers NodeUS. Pli a bien une propriété « Nom ». Et si à la place je mets la ligne en commentaire (tbNomEntité.DataBindings.Add("Text", pli, "IdLot"); ), cela passe. C’est bien le string « Nom » qui semble déclencher le problème.System.InvalidCastException was unhandled
Message="Impossible d'effectuer un cast d'un objet de type 'GestionEntité.NodePli' en type 'GestionEntité.NodeUS'."
Je n’ai pas la moindre idée du pourquoi.
Des pistes ?
Merci
Richard
Partager