IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

[WPF]Perte de binding !


Sujet :

C#

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 101
    Points : 86
    Points
    86
    Par défaut [WPF]Perte de binding !
    Voilà, pour mon projet (un lecteur audio), j'ai bindé un slider de position à mon objet player, en mode OneWay. Toutes les secondes, mon player envoie un propertychanged, ce qui fait que mon slider "suit" la piste en cours de lecture.

    Ensuite, j'écoute l'évènement: PreviewMouseLeftButtonUp, qui me permet de savoir quand l'utilisateur à bougé le slider, et je met mon player à jour dès que je reçois cet évènement. Le problème, c'est que dès que j'agis sur le slider, il ne se met plus à jour ! J'ai débuggé, mais le datacontext est toujours là et reçoit bien les bonnes valeurs. Apparement, c'est juste à l'affichage que ça ne s'actualise plus.

    Donc voilà je vois pas trop d'ou ça peut venir, si vous avez dès idées, je suis preneur

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Voila qui est très étrange... Tu n'as pas un e.Cancel qui traine quelque part ?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 101
    Points : 86
    Points
    86
    Par défaut
    Non, pas de e.cancel nulle part.

    Une piste cependant: en mode "TwoWay", je n'ai pas ce problème. Je pense donc que ça vient du fait qu'on bouge le slider (donc on modifie sa valeur), pendant que le biding en mode OneWay modifie aussi la valeur du slider... un genre de conflit qu'il n'y aurait pas en mode TwoWay, le slider et le player étant synchronisés...

    Bref, il faudrait que je puisse désactiver le biding à l'event PreviewMouseLeftButtonDown, et le remettre à l'event PreviewMouseLeftButtonUp. Ouaip, mais j'sais pas faire

  4. #4
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Pkoi ne pas simplement mettre ton Binding en mode TwoWay ? C'est après tout le comportement normal pour ton application: tu modifies la valeur du slider => ca modifie la source. Tu modifies la source => la valeur du slider doit être mise à jour

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 101
    Points : 86
    Points
    86
    Par défaut
    Il y a deux raison à cela:

    Tout d'abord, j'aimerais que mon player se comporte un peu comme WMP: lorsqu'on a le mouseDown, on continue à lire normalement, et au mouseUp, on actualise la position.

    Ensuite, en mode TwoWay, lorsqu'on déplace le slider, le player continue à lire, donc ça fait un bruit très très moche (du style lecture accélérée: blpblpblpblpblpbl)

    La solution que j'ai trouvé, c'est de mettre pause au mouseDown, et remettre en lecture au mouseUp, mais ça "coupe" quand même la piste en cours de lecture...

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 101
    Points : 86
    Points
    86
    Par défaut
    Résolu, il suffisait de remettre le binding à chaque mouseUp.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WPF] Faire un Binding du fichier Ressource
    Par UNi[FR] dans le forum C#
    Réponses: 13
    Dernier message: 29/09/2009, 22h37
  2. Pertes de binding via Entity Framework + WPF +WCF
    Par GTSLASH dans le forum Services Web
    Réponses: 4
    Dernier message: 12/08/2009, 10h17
  3. [WPF] Probléme de binding dans un UserControl :(
    Par UNi[FR] dans le forum Windows Presentation Foundation
    Réponses: 6
    Dernier message: 17/07/2008, 15h51
  4. [WPF] Problème de binding entre une SortedList et une ListBox
    Par JuTs dans le forum Général Dotnet
    Réponses: 4
    Dernier message: 10/12/2007, 13h20
  5. [WPF] Problème de binding
    Par JuTs dans le forum Framework .NET
    Réponses: 42
    Dernier message: 06/11/2007, 11h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo