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 :

[ListView] Comment résoudre un problème de Binding/Multibinding rafraichissement ?


Sujet :

Windows Presentation Foundation

  1. #1
    Membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 58
    Points : 51
    Points
    51
    Par défaut [ListView] Comment résoudre un problème de Binding/Multibinding rafraichissement ?
    Bonjour à tous,

    Petit problème pas forcément évident à expliquer....

    Donc voilà comme dit dans le titre, j'ai un problème de binding.

    Effectivement, je dispose de :
    - 2 Label (nom et prénom)
    - 1 listview comprenant une liste de ticket par exemple .
    - 1 popup comprenant une listview avec une liste de gens.

    J'ai binder les valeurs de ma listview dans mes labels donc lors du selection_changed (sur la 1ere listview), pas de soucis.

    Lorsque je passe par une popup (nouveau ticket entrainant une selection de personne) pas de soucis

    Lorsque je passe par une popup (nouveau ticket entrainant une selection de personne) pas de soucis

    Mais une fois que je re-selectionne un ticket de la listview(1ère), mes labels ne se bind plus....

    voici le code pour le binding.... (le même pour les 2 lists)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    ConvertGrid c = new ConvertGrid();
                    MultiBinding m = new MultiBinding();
                    m.Bindings.Add(b_nom_en);
                    m.Bindings.Add(b_nom_part);
                    m.Bindings.Add(b_nom_prosp);
                    m.Bindings.Add(b_firm_nom_prosp);
                    m.ConverterParameter = "FormatNom";
                    m.Converter = c;
                    m.Mode = BindingMode.TwoWay;
                    m.UpdateSourceTrigger = UpdateSourceTrigger.Explicit;
                    lbl_nomclient.SetBinding(System.Windows.Controls.Label.ContentProperty, m);
    Si quelqu'un possède une petite solution...
    Faut-il faire un udpate pour??
    Car en mode pas à pas la valeur du binding ne change plus du tout lorsque je change de sélection.

    Merci

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 562
    Points : 1 313
    Points
    1 313
    Par défaut
    juste pour info tu as bien le inotifypropertychanged partout ?
    IKEAS : Finalement je crois que c'est dans ses faiblesses que l'on y trouve a la fois de la force et a la fois de la richesse...
    ----------------------------------------------------
    Si vous avez du taf en wpf & design d'application sympa, contactez moi !!!!
    http://ultimatecorp.eu/wpf/

  3. #3
    Membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 58
    Points : 51
    Points
    51
    Par défaut
    Citation Envoyé par ikeas Voir le message
    juste pour info tu as bien le inotifypropertychanged partout ?
    Euh question bête.... effectivement je ne l'ai pas... et comment s'en servir??
    Je viens de regarder sur msdn ici ,et je ne comprend pas vraiment comment y faire appel...

    Si tu pouvais m'aider légèrement... car je n'ai pas tout suivi....

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 562
    Points : 1 313
    Points
    1 313
    Par défaut
    sinon pour faire simple voici un exemple de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    public class BaseComponent : INotifyPropertyChanged
    {
    private string _Name = "";
            [Category("Equipment")]
            [Description("Name of the equipment.")]
            [DefaultValue("")]
            public string Name
            {
                get { return _Name; }
                set
                {
                    _Name = value;
                    OnPropertyChanged("Name");
                }
            }
            public event PropertyChangedEventHandler PropertyChanged;
            //---------------------------------------------------------------------------
            protected void OnPropertyChanged(string PropertyName)
            {
                OnPropertyChanged(this, PropertyName);
            }
            protected void OnPropertyChanged(object sender, string PropertyName)
            {
                OnPropertyChanged(sender, new PropertyChangedEventArgs(PropertyName));
            }
            protected void OnPropertyChanged(object sender, PropertyChangedEventArgs e)
            {
                if (PropertyChanged != null)
                    PropertyChanged(sender, e);
            }
     
    }
    et pour la collection tu utilise une ObservableCollection<>

    comme cceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        public sealed class BaseComponentCollection : ObservableCollection<BaseComponent >
        {       
    }
    et tu n'as rien d'autre a faire, c'est ba bo la vie ?
    IKEAS : Finalement je crois que c'est dans ses faiblesses que l'on y trouve a la fois de la force et a la fois de la richesse...
    ----------------------------------------------------
    Si vous avez du taf en wpf & design d'application sympa, contactez moi !!!!
    http://ultimatecorp.eu/wpf/

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Citation Envoyé par ikeas Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        public sealed class BaseComponentCollection : ObservableCollection<BaseComponent >
        {       
    }
    Juste une petite note sur ce code: la collection n'est pas forcément une classe scellée (sealed), il peut s'agit d'une classe "standard'

  7. #7
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 562
    Points : 1 313
    Points
    1 313
    Par défaut
    oui c'est vrai j'ai lamentablement oublie d'enlever le sealed ou de dire que c'etait un ca particulier a moua !!!

    merci thomas
    IKEAS : Finalement je crois que c'est dans ses faiblesses que l'on y trouve a la fois de la force et a la fois de la richesse...
    ----------------------------------------------------
    Si vous avez du taf en wpf & design d'application sympa, contactez moi !!!!
    http://ultimatecorp.eu/wpf/

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

Discussions similaires

  1. [MouseDoubleClick] Comment résoudre un problème de Focus ?
    Par pcayrol dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 25/09/2008, 23h29
  2. Réponses: 5
    Dernier message: 19/06/2008, 10h23
  3. Comment résoudre ce probléme : Exception d'E/S: Connection refused ?
    Par adil_vpb dans le forum Connexions aux bases de données
    Réponses: 17
    Dernier message: 19/11/2007, 16h19
  4. Réponses: 12
    Dernier message: 27/08/2007, 12h33
  5. Réponses: 3
    Dernier message: 19/05/2006, 15h54

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