Donc au chargement de l'application, je désérialise le fichier dans une
DatabaseCollection et je *Bind* les propriétés des *Database* sur les
contrôles de la fenêtre.
Une combobox dans laquelle il y a la liste des *Database.Name* de
manière à pouvoir choisir une config dans la liste de celles lues dans
le fichier xml.
4 TextBox liées aux champ de la *Database* en cours.
1 Label qui affiche la ConnexionString de la *Database* en cours.
private void WinForm_Load(object sender, System.EventArgs e)
{
if (File.Exists("Config.xml"))
{
XmlTextReader xtr = new XmlTextReader("Config.xml");
XmlSerializer xs = new XmlSerializer(typeof(DatabaseCollection));
Au chargment tout va pour le mieux, j'ai la liste de mes
*Database.Name* dans la combobox, quand je change la sélection, les
propriétés de la nouvelle *Database* sont affichées dans les contrôles
de la fenêtre.
Mon problème c'est que lors de l'édition des propriétés de la
*Database* courante, le Label lbConnStr qui contient la
ConnectionString calculée d'après les propriétés de la *Database* n'est
pas mis à jour.
Comment forcer la mise à jour du contenu de ce Label ?
Merci d'avance,
Pierre Y.
--
Pierre Y.
levosgien.net - http://cerbermail.com/?7dwZGWwOB0
(Cliquez sur le lien ci-dessus pour me contacter en privé)
Capitaine anglais : "Vous vous battez pour l'argent, nous on se bat
pour l'honneur !"
Robert Surcouf : "Vous avez raison, Monsieur, chacun de nous combat
pour ce qui lui manque."
Et effectivement, le Label est rafraîchi correctement... Est-ce que ca vient de .NET 2.0 dont le fonctionnement des DataBindings aurait été amélioré ou j'ai loupé un truc dans mon implémentation avec le 1.1 ?
Alors là, je ne saurais te dire. Je ne me suis servi réellement du binding qu'avec la v2.
Jean
Pierre Y. a écrit :
Et effectivement, le Label est rafraîchi correctement... Est-ce que ca
vient de .NET 2.0 dont le fonctionnement des DataBindings aurait été
amélioré ou j'ai loupé un truc dans mon implémentation avec le 1.1 ?
Alors là, je ne saurais te dire. Je ne me suis servi réellement du
binding qu'avec la v2.
Et effectivement, le Label est rafraîchi correctement... Est-ce que ca vient de .NET 2.0 dont le fonctionnement des DataBindings aurait été amélioré ou j'ai loupé un truc dans mon implémentation avec le 1.1 ?
Alors là, je ne saurais te dire. Je ne me suis servi réellement du binding qu'avec la v2.
Jean
Pierre Y.
ftrl a écrit :
Pierre Y. a écrit :
Et effectivement, le Label est rafraîchi correctement... Est-ce que ca vient de .NET 2.0 dont le fonctionnement des DataBindings aurait été amélioré ou j'ai loupé un truc dans mon implémentation avec le 1.1 ?
Alors là, je ne saurais te dire. Je ne me suis servi réellement du binding qu'avec la v2.
C'est vachement fort en tous les cas, avec les generics, je remplace mon DatabaseCollection (voir quelques messages plus haut) par :
public class DatabaseCollection { public List<Database> Databases; }
Et les boutons "Add New" et "Delete" sont actifs dans le BindingNavigator, du coup le code "à écrire" de la fenêtre se résume à :
private void Form1_Load(object sender, EventArgs e) { if (File.Exists("Clients.xml")) { XmlTextReader xtr = new XmlTextReader("Clients.xml"); XmlSerializer xs = new XmlSerializer(typeof(DatabaseCollection));
dc = (DatabaseCollection)xs.Deserialize(xtr); xtr.Close();
XmlSerializer xs = new XmlSerializer(typeof(DatabaseCollection)); xs.Serialize(xtw, dc);
xtw.Close(); }
// Concession à la modernité, il faut quand même dire quel controle // sera activé lorsqu'une nouvelle "Database" est ajoutée à la liste private void bindingNavigatorAddNewItem_Click(object sender, EventArgs e) { textBox1.Focus(); }
En tous les cas merci, je vais retourner à mon .NET 1.1 pour tenter de comprendre ce qui ne marche pas avec mon DataBinding.
A+
Pierre
-- Pierre Y. levosgien.net - http://cerbermail.com/?7dwZGWwOB0 (Cliquez sur le lien ci-dessus pour me contacter en privé)
Capitaine anglais : "Vous vous battez pour l'argent, nous on se bat pour l'honneur !" Robert Surcouf : "Vous avez raison, Monsieur, chacun de nous combat pour ce qui lui manque."
ftrl a écrit :
Pierre Y. a écrit :
Et effectivement, le Label est rafraîchi correctement... Est-ce que ca
vient de .NET 2.0 dont le fonctionnement des DataBindings aurait été
amélioré ou j'ai loupé un truc dans mon implémentation avec le 1.1 ?
Alors là, je ne saurais te dire. Je ne me suis servi réellement du binding
qu'avec la v2.
C'est vachement fort en tous les cas, avec les generics, je remplace
mon DatabaseCollection (voir quelques messages plus haut) par :
public class DatabaseCollection
{
public List<Database> Databases;
}
Et les boutons "Add New" et "Delete" sont actifs dans le
BindingNavigator, du coup le code "à écrire" de la fenêtre se résume à
:
private void Form1_Load(object sender, EventArgs e)
{
if (File.Exists("Clients.xml"))
{
XmlTextReader xtr = new XmlTextReader("Clients.xml");
XmlSerializer xs = new XmlSerializer(typeof(DatabaseCollection));
dc = (DatabaseCollection)xs.Deserialize(xtr);
xtr.Close();
XmlSerializer xs = new XmlSerializer(typeof(DatabaseCollection));
xs.Serialize(xtw, dc);
xtw.Close();
}
// Concession à la modernité, il faut quand même dire quel controle
// sera activé lorsqu'une nouvelle "Database" est ajoutée à la liste
private void bindingNavigatorAddNewItem_Click(object sender, EventArgs
e)
{
textBox1.Focus();
}
En tous les cas merci, je vais retourner à mon .NET 1.1 pour tenter de
comprendre ce qui ne marche pas avec mon DataBinding.
A+
Pierre
--
Pierre Y.
levosgien.net - http://cerbermail.com/?7dwZGWwOB0
(Cliquez sur le lien ci-dessus pour me contacter en privé)
Capitaine anglais : "Vous vous battez pour l'argent, nous on se bat
pour l'honneur !"
Robert Surcouf : "Vous avez raison, Monsieur, chacun de nous combat
pour ce qui lui manque."
Et effectivement, le Label est rafraîchi correctement... Est-ce que ca vient de .NET 2.0 dont le fonctionnement des DataBindings aurait été amélioré ou j'ai loupé un truc dans mon implémentation avec le 1.1 ?
Alors là, je ne saurais te dire. Je ne me suis servi réellement du binding qu'avec la v2.
C'est vachement fort en tous les cas, avec les generics, je remplace mon DatabaseCollection (voir quelques messages plus haut) par :
public class DatabaseCollection { public List<Database> Databases; }
Et les boutons "Add New" et "Delete" sont actifs dans le BindingNavigator, du coup le code "à écrire" de la fenêtre se résume à :
private void Form1_Load(object sender, EventArgs e) { if (File.Exists("Clients.xml")) { XmlTextReader xtr = new XmlTextReader("Clients.xml"); XmlSerializer xs = new XmlSerializer(typeof(DatabaseCollection));
dc = (DatabaseCollection)xs.Deserialize(xtr); xtr.Close();
XmlSerializer xs = new XmlSerializer(typeof(DatabaseCollection)); xs.Serialize(xtw, dc);
xtw.Close(); }
// Concession à la modernité, il faut quand même dire quel controle // sera activé lorsqu'une nouvelle "Database" est ajoutée à la liste private void bindingNavigatorAddNewItem_Click(object sender, EventArgs e) { textBox1.Focus(); }
En tous les cas merci, je vais retourner à mon .NET 1.1 pour tenter de comprendre ce qui ne marche pas avec mon DataBinding.
A+
Pierre
-- Pierre Y. levosgien.net - http://cerbermail.com/?7dwZGWwOB0 (Cliquez sur le lien ci-dessus pour me contacter en privé)
Capitaine anglais : "Vous vous battez pour l'argent, nous on se bat pour l'honneur !" Robert Surcouf : "Vous avez raison, Monsieur, chacun de nous combat pour ce qui lui manque."
ftrl
Pierre Y. a écrit :
C'est vachement fort en tous les cas, avec les generics, je remplace mon DatabaseCollection (voir quelques messages plus haut) par :
Si ça se trouve, certains delphinautes vont comprendre qu'ils ont exactement 14 ans de retard (en c++, les templates, ça remonte à 91 je crois) !
Jean
Pierre Y. a écrit :
C'est vachement fort en tous les cas, avec les generics, je remplace mon
DatabaseCollection (voir quelques messages plus haut) par :
Si ça se trouve, certains delphinautes vont comprendre qu'ils ont
exactement 14 ans de retard (en c++, les templates, ça remonte à 91 je
crois) !
C'est vachement fort en tous les cas, avec les generics, je remplace mon DatabaseCollection (voir quelques messages plus haut) par :
Si ça se trouve, certains delphinautes vont comprendre qu'ils ont exactement 14 ans de retard (en c++, les templates, ça remonte à 91 je crois) !
Jean
Pierre Y.
ftrl a écrit :
Pierre Y. a écrit :
C'est vachement fort en tous les cas, avec les generics, je remplace mon DatabaseCollection (voir quelques messages plus haut) par :
Si ça se trouve, certains delphinautes vont comprendre qu'ils ont exactement 14 ans de retard (en c++, les templates, ça remonte à 91 je crois) !
Ca va venir à coup de VS2005 + Chrome ?
;-)
Pierre
PS : Alors finalement ftrl c'est toi...
-- Pierre Y. levosgien.net - http://cerbermail.com/?7dwZGWwOB0 (Cliquez sur le lien ci-dessus pour me contacter en privé)
Capitaine anglais : "Vous vous battez pour l'argent, nous on se bat pour l'honneur !" Robert Surcouf : "Vous avez raison, Monsieur, chacun de nous combat pour ce qui lui manque."
ftrl a écrit :
Pierre Y. a écrit :
C'est vachement fort en tous les cas, avec les generics, je remplace mon
DatabaseCollection (voir quelques messages plus haut) par :
Si ça se trouve, certains delphinautes vont comprendre qu'ils ont exactement
14 ans de retard (en c++, les templates, ça remonte à 91 je crois) !
Ca va venir à coup de VS2005 + Chrome ?
;-)
Pierre
PS : Alors finalement ftrl c'est toi...
--
Pierre Y.
levosgien.net - http://cerbermail.com/?7dwZGWwOB0
(Cliquez sur le lien ci-dessus pour me contacter en privé)
Capitaine anglais : "Vous vous battez pour l'argent, nous on se bat
pour l'honneur !"
Robert Surcouf : "Vous avez raison, Monsieur, chacun de nous combat
pour ce qui lui manque."
C'est vachement fort en tous les cas, avec les generics, je remplace mon DatabaseCollection (voir quelques messages plus haut) par :
Si ça se trouve, certains delphinautes vont comprendre qu'ils ont exactement 14 ans de retard (en c++, les templates, ça remonte à 91 je crois) !
Ca va venir à coup de VS2005 + Chrome ?
;-)
Pierre
PS : Alors finalement ftrl c'est toi...
-- Pierre Y. levosgien.net - http://cerbermail.com/?7dwZGWwOB0 (Cliquez sur le lien ci-dessus pour me contacter en privé)
Capitaine anglais : "Vous vous battez pour l'argent, nous on se bat pour l'honneur !" Robert Surcouf : "Vous avez raison, Monsieur, chacun de nous combat pour ce qui lui manque."
Merlin
ftrl a écrit :
Si ça se trouve, certains delphinautes vont comprendre qu'ils ont exactement 14 ans de retard (en c++, les templates, ça remonte à 91 je crois) !
c'est vrai que c'est une vieille idée. Mais on peut dire que malgré tout elle ne prend tout son sens que dans un environnement totalement objet comme .NET. Pour faire de l'interface Windows avec les MFC ou la VCL c'était pas indispensable. Là ça devient très intéressant car y'a tout qui suit. Et puis, on pourrait dire aussi que les développeurs C++ vont comprendre qu'ils ont bien dix ans de retard car ça fait depuis Delphi 1 que la notion de property existe... Tout cela ne serait que mesquinerie non ? :-)
Si ça se trouve, certains delphinautes vont comprendre qu'ils ont exactement
14 ans de retard (en c++, les templates, ça remonte à 91 je crois) !
c'est vrai que c'est une vieille idée. Mais on peut dire que malgré
tout elle ne prend tout son sens que dans un environnement totalement
objet comme .NET. Pour faire de l'interface Windows avec les MFC ou la
VCL c'était pas indispensable. Là ça devient très intéressant car y'a
tout qui suit.
Et puis, on pourrait dire aussi que les développeurs C++ vont
comprendre qu'ils ont bien dix ans de retard car ça fait depuis Delphi
1 que la notion de property existe...
Tout cela ne serait que mesquinerie non ? :-)
Si ça se trouve, certains delphinautes vont comprendre qu'ils ont exactement 14 ans de retard (en c++, les templates, ça remonte à 91 je crois) !
c'est vrai que c'est une vieille idée. Mais on peut dire que malgré tout elle ne prend tout son sens que dans un environnement totalement objet comme .NET. Pour faire de l'interface Windows avec les MFC ou la VCL c'était pas indispensable. Là ça devient très intéressant car y'a tout qui suit. Et puis, on pourrait dire aussi que les développeurs C++ vont comprendre qu'ils ont bien dix ans de retard car ça fait depuis Delphi 1 que la notion de property existe... Tout cela ne serait que mesquinerie non ? :-)
Il est possible de faire des property en C++ en utilisant les operateurs.
-- Michael ---- http://michael.moreno.free.fr/ http://port.cogolin.free.fr/
ftrl
Merlin a écrit :
Si ça se trouve, certains delphinautes vont comprendre qu'ils ont exactement 14 ans de retard (en c++, les templates, ça remonte à 91 je crois) !
c'est vrai que c'est une vieille idée. Mais on peut dire que malgré tout elle ne prend tout son sens que dans un environnement totalement objet comme .NET.
Rires.
Pour faire de l'interface Windows avec les MFC ou la VCL c'était pas indispensable. Là ça devient très intéressant car y'a tout qui suit.
Par définition, les templates sont en dehors du modèle objet en c++ ! Le paradigme "généricité" est totalement indépendant du paradigme "objet". Ca t'a échappé on dirait.
Et puis, on pourrait dire aussi que les développeurs C++ vont comprendre qu'ils ont bien dix ans de retard car ça fait depuis Delphi 1 que la notion de property existe...
Dans tes rêves !
Tout cela ne serait que mesquinerie non ? :-)
Et nous ne sommes pas au meilleur endroit pour que tu apprennes quelques notions importantes sur les langages, domaine dans lequel tu as de nombreuses lacunes.
Jean
Merlin a écrit :
Si ça se trouve, certains delphinautes vont comprendre qu'ils ont
exactement 14 ans de retard (en c++, les templates, ça remonte à 91 je
crois) !
c'est vrai que c'est une vieille idée. Mais on peut dire que malgré tout
elle ne prend tout son sens que dans un environnement totalement objet
comme .NET.
Rires.
Pour faire de l'interface Windows avec les MFC ou la VCL
c'était pas indispensable. Là ça devient très intéressant car y'a tout
qui suit.
Par définition, les templates sont en dehors du modèle objet en c++ ! Le
paradigme "généricité" est totalement indépendant du paradigme "objet".
Ca t'a échappé on dirait.
Et puis, on pourrait dire aussi que les développeurs C++ vont comprendre
qu'ils ont bien dix ans de retard car ça fait depuis Delphi 1 que la
notion de property existe...
Dans tes rêves !
Tout cela ne serait que mesquinerie non ? :-)
Et nous ne sommes pas au meilleur endroit pour que tu apprennes quelques
notions importantes sur les langages, domaine dans lequel tu as de
nombreuses lacunes.
Si ça se trouve, certains delphinautes vont comprendre qu'ils ont exactement 14 ans de retard (en c++, les templates, ça remonte à 91 je crois) !
c'est vrai que c'est une vieille idée. Mais on peut dire que malgré tout elle ne prend tout son sens que dans un environnement totalement objet comme .NET.
Rires.
Pour faire de l'interface Windows avec les MFC ou la VCL c'était pas indispensable. Là ça devient très intéressant car y'a tout qui suit.
Par définition, les templates sont en dehors du modèle objet en c++ ! Le paradigme "généricité" est totalement indépendant du paradigme "objet". Ca t'a échappé on dirait.
Et puis, on pourrait dire aussi que les développeurs C++ vont comprendre qu'ils ont bien dix ans de retard car ça fait depuis Delphi 1 que la notion de property existe...
Dans tes rêves !
Tout cela ne serait que mesquinerie non ? :-)
Et nous ne sommes pas au meilleur endroit pour que tu apprennes quelques notions importantes sur les langages, domaine dans lequel tu as de nombreuses lacunes.
Jean
ftrl
Michael Moreno a écrit :
Oui mais alors le C++, excuse-moi mais pour faire des ecrans... du COM... etc, c'est vraiment galere ! C# est un super compromis.
Je ne dis pas le contraire, au contraire !
Mais c'est essentiellement une notion d'Edi et d'api que c++ est chiant à utiliser pour les écrans.
Pour com, non, je ne trouve pas.
Jean
Michael Moreno a écrit :
Oui mais alors le C++, excuse-moi mais pour faire des ecrans... du
COM... etc, c'est vraiment galere ! C# est un super compromis.
Je ne dis pas le contraire, au contraire !
Mais c'est essentiellement une notion d'Edi et d'api que c++ est chiant
à utiliser pour les écrans.