Bonjour tout le monde,

je suis confronté à un problème assez bizarre, je m'explique :


j'ai un userControl qui fait appel à une lib qui se charge de créer une grid avec X composant dedans et de faire les bind qui vont bien (le tout dynamiquement), dans un souci de portabilité, ma fonction Fill dans ma lib, prend une interface (qu'on va appeler Interface1 ici).

cette interface1 contient une liste d'interface2, jusque l'a rien de foufou, à un moment dans le code je fais ça :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
bind = new Binding() { Source = item, Path = new PropertyPath("StringValue"), Mode = BindingMode.TwoWay, UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged };
touchTextBox.SetBinding(TextBox.TextProperty, bind);
ici item est de type Interface2, quand je change la valeur de la textbox dans mon userControl, et que je regarde ce qu'il se passe, je me rend compte que l'itemSource dans mon binding n'est plus celui que j'ai indiqué (Interface1.interface2[0] != de item, alors qu'il est bien identique lorsque je le passe en paramétre de new binding...)


je n'ai pas ce souci quand je n'utilise pas d'interface ( j'ai le même code fait de manière moins generique qui marche sans souci)


si je fais ça, à savoir mettre directement l'item que je veux comme source, et non plus item ( qui est issu d'une itération) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
bind = new Binding() { Source = interface1.interface2[0], Path = new PropertyPath("StringValue"), Mode = BindingMode.TwoWay, UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged };
touchTextBox.SetBinding(TextBox.TextProperty, bind);
ça ne change strictement rien, quand je regarde la valeur de interface1.interface2[0], elle est toujours à sa valeur initial, pourtant l'item bindé dans ma textbox à bien la nouvelle valeur, la propertyChanged est bien là et est bien trigger...

je ne comprend pas du tout, c'est comme si le bind se faisait sur une nouvelle instance de mon objet...

quelqu'un à une piste ?