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 :

Question Notify Property Changed


Sujet :

C#

  1. #1
    Membre confirmé Avatar de Klivor
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    143
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 143
    Par défaut Question Notify Property Changed
    Bonsoir amis développer,

    est-ce que une âme charitable pourrait me traduire en bon français ce que fait ce 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
    34
    35
    36
    37
     
        public event PropertyChangedEventHandler PropertyChanged;
     
        private void NotifyPropertyChanged(String info)
        {
            if (PropertyChanged != null)
            {
                PropertyChanged(this, new PropertyChangedEventArgs(info));
            }
        }
     
        // The constructor is private to enforce the factory pattern.
        private DemoCustomer()
        {
            customerNameValue = "Customer";
            phoneNumberValue = "(555)555-5555";
        }
     
     
        // This property represents an ID, suitable
        // for use as a primary key in a database.
         public string CustomerName
        {
            get
            {
                return this.customerNameValue;
            }
     
            set
            {
                if (value != this.customerNameValue)
                {
                    this.customerNameValue = value;
                    NotifyPropertyChanged("CustomerName");
                }
            }
        }
    C'est surtout ce qui est dans le set de la propriété CustomerName que je ne comprend pas vraiment.
    Pourquoi quelque fois on met le NotifyPropertyChanged("propriété") et d'autre fois non ?

    Merci d'avance.
    Klivor

  2. #2
    Membre Expert Avatar de sisqo60
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2006
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 754
    Par défaut
    Bonjour,

    regarde sur le msdn. C'est l'implémentation de l'interface INotifyPropertyChanged pour WPF.

    Sinon, ce que fait le setter, c'est que si la nouvelle valeur est différente de l'ancienne alors on affecte la nouvelle valeur à l'attribut privé de la propriété, et on déclenche l'évènement avec pour paramètre le nom de la propriété.

  3. #3
    Membre confirmé Avatar de Klivor
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    143
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 143
    Par défaut
    Citation Envoyé par sisqo60 Voir le message
    Bonjour,

    regarde sur le msdn. C'est l'implémentation de l'interface INotifyPropertyChanged pour WPF.

    Sinon, ce que fait le setter, c'est que si la nouvelle valeur est différente de l'ancienne alors on affecte la nouvelle valeur à l'attribut privé de la propriété, et on déclenche l'évènement avec pour paramètre le nom de la propriété.
    Merci de ta réponse,
    justement que fait cet événement déclenché?
    C'est sa qui me perturbe le plus

  4. #4
    Membre Expert Avatar de sisqo60
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2006
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 754
    Par défaut
    L'évènement sert pour le binding en WPF. Quand la valeur d'une propriété change il faut qu'à l'affichage sa valeur soit mise à jour, donc ça sert à notifier le moteur de rendu WPF que la valeur de la propriété a changé pour qu'il puisse mettre à jour l'affichage. Tu as deux solutions pour le binding les propriétés CLR (avec implémentation de INotifyPropertyChanged) et les DependancyProperty.

    EDIT : Si ta classe n'implémente pas l'interface INotifyPropertyChanged, le moteur de rendu WPF gardera la référence de ton objet, mais pas la référence vers laquelle pointe ta propriété! (c'est peut-être pas très clair!!!)

  5. #5
    Membre Expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Analyst & Software Developer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Par défaut
    Pour apporter une petite précision, l'interface INotifyPropertyChanged sert également en Winform et même de façon générale dans le Framework .NET.

    Il s'agit en effet d'une interface permettant l'utilisation de l'objet par les moteurs de binding de .NET.

  6. #6
    Membre Expert Avatar de sisqo60
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2006
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 754
    Par défaut
    Citation Envoyé par Pongten Voir le message
    Pour apporter une petite précision, l'interface INotifyPropertyChanged sert également en Winform et même de façon générale dans le Framework .NET.
    Merci pour cette précision, je pensais qu'elle était nouvelle puisque je l'avais découverte en WPF. Merci, je me coucherais moins c.. ce soir

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

Discussions similaires

  1. [Débutant] WPF Thread UI sur dependency property change
    Par kraigoun dans le forum Windows Presentation Foundation
    Réponses: 5
    Dernier message: 10/08/2013, 15h41
  2. [AC-2000] Questions pour des échanges Access - Excel
    Par DarkpaiN dans le forum VBA Access
    Réponses: 5
    Dernier message: 06/05/2011, 13h52
  3. Petite question fichier "properties"
    Par rampageXT dans le forum Langage
    Réponses: 3
    Dernier message: 13/11/2007, 13h09
  4. Question sur les interfaces (consturcteur property)
    Par BenoitM dans le forum VB.NET
    Réponses: 4
    Dernier message: 01/03/2007, 15h49
  5. [Thread] Petite question sur notify() et wait()
    Par Invité dans le forum Concurrence et multi-thread
    Réponses: 8
    Dernier message: 12/05/2006, 12h13

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