UserControl et DataBinding [Résolu]

cendretp 6 Messages postés mercredi 28 avril 2004Date d'inscription 6 mars 2005 Dernière intervention - 3 mars 2005 à 20:07 - Dernière réponse : cendretp 6 Messages postés mercredi 28 avril 2004Date d'inscription 6 mars 2005 Dernière intervention
- 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
taoetc 346 Messages postés lundi 8 septembre 2003Date d'inscription 3 septembre 2007 Dernière intervention - 4 mars 2005 à 09:08
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

Merci taoetc 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 69 internautes ce mois-ci

Commenter la réponse de taoetc
Meilleure réponse
cendretp 6 Messages postés mercredi 28 avril 2004Date d'inscription 6 mars 2005 Dernière intervention - 4 mars 2005 à 10:25
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);


}

Merci cendretp 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 69 internautes ce mois-ci

Commenter la réponse de cendretp
cendretp 6 Messages postés mercredi 28 avril 2004Date d'inscription 6 mars 2005 Dernière intervention - 4 mars 2005 à 10:52
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
cendretp 6 Messages postés mercredi 28 avril 2004Date d'inscription 6 mars 2005 Dernière intervention - 4 mars 2005 à 11:28
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.