none
Un problème bizarre avec le databinding RRS feed

  • Discussion générale

  • Bonjour

     

    J’ai un pti bug que je ne comprends pas.

     


      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");
       }

     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.

     

    Il devrait, plutôt. Cela fonctionne correctement jusqu’à la ligne « tbNomEntité.DataBindings.Add("Text", pli, "Nom"); », où j’ai une erreur me disant :


    System.InvalidCastException was unhandled
      Message="Impossible d'effectuer un cast d'un objet de type 'GestionEntité.NodePli' en type 'GestionEntité.NodeUS'."

     

    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.

     

    Je n’ai pas la moindre idée du pourquoi.

     

    Des pistes ?

     

    Merci

     

    Richard

    mardi 22 mai 2007 08:27