Bonjour,

Je dispose d'un model de données de la forme:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
User -> name
     -> firstname
     -> address -> street
                -> postcode
                -> city
Les différentes propriétés de cet objet User sont bindées aux champs d'un formulaire. Mon problème c'est que je voudrais remplacer l'instance de cet objet par une autre sans perdre le binding. Par exemple:

Et je voudrais qu'en faisant ça, les propriétés de mon user2 se retrouvent bindées au formulaire sans que je doive recoder tout le databinding de chaque champ.

En faisant ça j'écrase la valeur de bindedUser et je la remplace par l'instance de user2, du coup mon objet bindedUser change de référence (d'adresse mémoire) pour prendre la référence de user2 et l'ancienne référence est perdue alors que c'est elle qui est référencée dans le binding et c'est donc logique que perde le binding aussi.

J'avais donc comme idée de faire une copie par valeur et non pas par référence comme c'est possible en C++ mais je ne sais pas si as3 le permet. Si je pouvais définir bindedUser comme pointeur alors je pourais binder le pointeur au lieu de binder l'instance de l'objet.

Sinon l'autre alternative c'est de copier chaque propriété du deuxième objet dans le premier objet mais je n'aime pas cette solution car je souhaite faire une méthode de copie générique qui fonctionne pour tout type d'objets. Il faudrait alors que je passe par l'introspection, que j'explore les propriétés des objets et que je les copie. Oui mais!... Mes propriétés peuvent elles même être des objets (comme l'adresse dans cet exemple). Et donc il faudra explorer plusieurs niveaux du model de données, prendre en compte les références circulaires pour éviter les boucles infinie etc... Bref la galère... Donc si la copie par valeur pouvait fonctionner ça serait l'idéal.

Une idée?