CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

WPF problème de binding

darkepsylon
darkepsylon
Niveau 10
27 octobre 2020 à 17:53:58

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 :

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) :
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 ?

boucif
boucif
Niveau 24
28 octobre 2020 à 08:31:15

Hello avec le 1/4 du code ça va être compliqué à comprendre.
Tu aurais pas un projet à partager sur github ?
Ton interface1.interface2[0] a l’air tiré par les cheveux.

Message édité le 28 octobre 2020 à 08:31:31 par boucif
Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment