UserControl et DataBinding [Résolu]

Messages postés
6
Date d'inscription
mercredi 28 avril 2004
Dernière intervention
6 mars 2005
- - Dernière réponse : cendretp
Messages postés
6
Date d'inscription
mercredi 28 avril 2004
Dernière intervention
6 mars 2005
- 4 mars 2005 à 11:28
J'ai un textbox mis à jour via un DataBinding dans un UserControl qui ne fonctionne pas mais cela fonctionne dans le textbox en dehors du UserControl.
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Messages postés
346
Date d'inscription
lundi 8 septembre 2003
Dernière intervention
3 septembre 2007
3
Merci
As tu conscience qu'il n'y a aucune question dans ton message? Et même si tu voulais savoir pourquoi mon usercontrol marche pas, on ne peut paste le dire , parce que sans un bout de code , on pourrait difficielement te répondre

Donc, la non réponse à ta non question ne peut etre que , oh, t'as pas de chance, mais ca marche à moitié quand meme

bon courage

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 97 internautes nous ont dit merci ce mois-ci

Commenter la réponse de taoetc
Messages postés
6
Date d'inscription
mercredi 28 avril 2004
Dernière intervention
6 mars 2005
3
Merci
Exat, un bout de code est difficile car le projet comporte de nombreuses classes. Mais le problème est le suivant. J'utilise DataBinding avec un TextBox sans problème mais lorsque ce TextBox se trouve dans un usercontrol le DataBinding ne fonctionne pas.

Voici le bout de code en question :


if (pControl
is
TextBox)


{



TextBox textBox = pControl
as
TextBox;


textBox.BindingContext =
this.Metier.bindingContext;


textBox.DataBindings.Clear();



Binding bd =
new
Binding(
"Text",
this.Metier.dtMetier,
this.DBChamp);


bd.Parse +=
new
ConvertEventHandler(bd_Parse);


bd.Format +=
new
ConvertEventHandler(bd_Format);


textBox.DataBindings.Add(bd);


}



// textBoxBase est un usercontrol avec le textbox textBoxBase définit en public dedans.

if (
this.Control
is
TextButtonBase)


{





TextBox textBox = ((
TextButtonBase)
this.Control).textBoxBase
as
TextBox;


((
TextButtonBase)
this.Control).BindingContext =
this.Metier.bindingContext;


textBox.BindingContext =
this.Metier.bindingContext;


textBox.DataBindings.Clear();


((
TextButtonBase)
this.Control).DataBindings.Clear();



Binding bd =
new
Binding(
"Text",
this.Metier.dtMetier,
this.DBChamp);


bd.Parse +=
new
ConvertEventHandler(bd_Parse);


bd.Format +=
new
ConvertEventHandler(bd_Format);



//textBox.DataBindings.Add(bd);


((
TextButtonBase)
this.Control).DataBindings.Add(bd);


}

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 97 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cendretp
Messages postés
6
Date d'inscription
mercredi 28 avril 2004
Dernière intervention
6 mars 2005
0
Merci
Le problème vient de mes classes de bases (j'ai essayé avec un code simple et cela fonctionne). Je recherche le problème si je trouve je posterais la réponse.



this.BindingContext =
new
BindingContext();



DataSet ds =
new
DataSet(
"Test");


ds.Tables.Add(
new
DataTable(
"Test"));


ds.Tables[
"Test"].Columns.Add(
"Text");


ds.Tables[
"Test"].Columns.Add(
"User");


ds.Tables[
"Test"].Rows.Add(ds.Tables[
"Test"].NewRow());


ds.Tables[
"Test"].Rows[0][
"Text"] =
"Text";


ds.Tables[
"Test"].Rows[0][
"User"] =
"User";



this.BindingContext[ds.Tables[
"Test"]].Position = 0;



this.textBox1.BindingContext =
this.BindingContext;



this.textBox1.DataBindings.Add(
new
Binding(
"Text", ds.Tables[
"Test"],
"Text"));



this.userControl11.textBox1.BindingContext =
this.BindingContext;



this.userControl11.textBox1.DataBindings.Add(
new
Binding(
"Text", ds.Tables[
"Test"],
"User"));
Commenter la réponse de cendretp
Messages postés
6
Date d'inscription
mercredi 28 avril 2004
Dernière intervention
6 mars 2005
0
Merci
J'ai trouvé mon user control n'était pas visible (UserControl.Visible = = false) lors de la définition du binding. Je relance cette définition (UserControl.VisibleChanged += new ...) lorsque l'objet devient visible et cela fonctionne.
Remarque : le problème est le même pour textbox et certainement pour les autres type d'objet visuel.
Commenter la réponse de cendretp

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.