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

Windows Presentation Foundation Discussion :

Binding UserControl (1 source 2 ctrl)


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de adrienfehr
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 203
    Par défaut Binding UserControl (1 source 2 ctrl)
    Bonjour,

    Je cherche à faire ce binding (j’ai un exemple simplifié)

    0. Dans un user control j’ajoute :
    1. deux textbox et une propriété « value »
    2. Le format de la valeur « value » et textBox1.Text + " " + textBox2.Text
    3. Je cherche à faire le binding sur la propriété value de mon nouveau contrôle.

    Le binding fonctionne déjà dans un sens : extérieur du contrôle, on donne la valeur que l’on possède dans une base de données (ex "’a b") et le contrôle nous l’affiche dans les deux textbox

    La question est comment réalisé le retour, c'est-à-dire quand l’utilisateur modifie un textbox, la propriété value doit être automatiquement modifiée.

    (On a crée une DependencyProperty pour faire le binding)
    public static readonly DependencyProperty ValueProperty = DependencyProperty.Register("Value", typeof(string?), typeof(NouveauControl), new FrameworkPropertyMetadata(null, new PropertyChangedCallback(OnValueChanged)));

    Merci

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Peut-être en faisant l'opération dans la méthode OnValueChanged

  3. #3
    Membre confirmé Avatar de adrienfehr
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 203
    Par défaut
    Merci Thomas,

    En fait c'était tout simple je viens de trouver, il suffit d'adhérer à l’événement ValueChanged des textbox puis de modifier directement la propriété Value à l’interieur. Le binding est retransmit automatiquement.

    J'ai cherché compliqué pour rien !



    public decimal? Value
    {
    get { return (decimal?)GetValue(ValueProperty); }
    set
    {
    SetValue(ValueProperty, value);
    }
    }
    public static readonly DependencyProperty ValueProperty = DependencyProperty.Register("Value", typeof(decimal?), typeof(Coordinate), new FrameworkPropertyMetadata(null, new PropertyChangedCallback(OnValueChanged)));

    Gut

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

Discussions similaires

  1. DataTrigger binding Cannot find source
    Par mariox dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 02/10/2014, 08h30
  2. [Débutant] Binding UserControl StackPanel WPF
    Par sarah2810 dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 12/09/2013, 19h58
  3. [MVVM] Problème de binding, UserControl vers ViewModel
    Par Phil350 dans le forum Windows Presentation Foundation
    Réponses: 6
    Dernier message: 06/10/2010, 17h35
  4. [Binding] UserControl non mis à jour
    Par matrix_ceg dans le forum Windows Presentation Foundation
    Réponses: 9
    Dernier message: 29/03/2010, 12h33
  5. Binding avec plusieurs sources
    Par vinlap dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 22/05/2009, 09h50

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