Appel dynamique

[Résolu]
Signaler
Messages postés
31
Date d'inscription
vendredi 22 août 2003
Statut
Membre
Dernière intervention
15 mars 2015
-
Messages postés
31
Date d'inscription
vendredi 22 août 2003
Statut
Membre
Dernière intervention
15 mars 2015
-
salut à tous,

Je fais un appel dynamique sur une méthode de ma Form.
Par exemple : l'utilisateur tape : Affichage@toto
Affichage est une méthode et toto le paramètre attendu

Via la Reflexion, j'appelle la méthode avec le Invoke, voici le code :
 t.InvokeMember(Commande,BindingFlags.Default|BindingFlags.InvokeMethod,null,obj,args);

La méthode est bien executée, sauf que dans la méthode je fais appel à une classe qui accède à la base de données et renvoyant un objet de type table qui par la suite remplit un datagrid.

La table est bien renvoyée mais le datagrid n'est jamais rempli.

Voici le code de la méthode Affichage :
oTable.Clear();
            oTable.Dispose();
            oTable=new DataTable();
            string err;
            oTable =cdata.RetournerTableComplete("select * from " + sTable,sTable,out err);
            DgResult.DataSource=oTable

Quelqu'un aurait une idée ?
         

3 réponses

Messages postés
31
Date d'inscription
vendredi 22 août 2003
Statut
Membre
Dernière intervention
15 mars 2015
1
J'ai résolu le problème en inserant la cible comme étant la form elle-même.

En effet je faisais : object obj = Activator.CreateInstance(t) et
mettais obj comme cible, forcement la cible avait un handle différent
de ma fenêtre.


Code modifié : t.InvokeMember(Commande,BindingFlags.Default|BindingFlags.InvokeMethod,null,this,args);
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
37
il manque le DgResult.DataBind()...

non ?

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Messages postés
31
Date d'inscription
vendredi 22 août 2003
Statut
Membre
Dernière intervention
15 mars 2015
1
Non, car le DataSource suffit amplement.
Quand je teste avec un évenement classique, ma datagrid se remplit normalement.