[wpf] notifier l'interface utilisateur de la modification d'une propriété d'un objet métier

Description

Lorsque l'on dispose d'un objet métier bindé à l'interface graphique, on est parfois confronté à un problème de taille: la mise à jour de l'objet métier est effectué en mémoire mais au niveau de l'interface graphique, aucun changement n'est visible.

Pour palier à ce problème, il est nécessaire d'implémenter l'interface INotifyPropertyChanged sur l'objet métier: http://msdn.microsoft.com/en-us/library/system.componentmodel.inotifypropertychanged.aspx

Le fichier ZIP contient un projet de démonstration mettabt en oeuvre ce pattern.

Source / Exemple :


public class Personne : INotifyPropertyChanged
    {
        private string m_Nom;
        public string Nom
        {
            get
            {
                return m_Nom;
            }
            set
            {
                m_Nom = value;

                OnPropertyChanged("Nom");
            }
        }

        private string m_Prenom;
        public string Prenom
        {
            get
            {
                return m_Prenom;
            }
            set
            {
                m_Prenom = value;
                OnPropertyChanged("Prenom");
            }
        }

        private string m_Societe;
        public string Societe
        {
            get
            {
                return m_Societe;
            }
            set
            {
                m_Societe = value;
                OnPropertyChanged("Societe");
            }
        }

        #region Implementation of INotifyPropertyChanged

        public event PropertyChangedEventHandler PropertyChanged;

        public void OnPropertyChanged(string propName)
        {
            if(PropertyChanged != null)
            {
                PropertyChanged(this, new PropertyChangedEventArgs(propName));
            }
        }

        #endregion
    }

Conclusion :


Comme vous pouvez le constater, cette interface n'est pas nouvelle mais très peu connue des développeurs .NET. Avec WPF, elle devient quasiment obligatoire dans des scénarios de DataBinding, du plus simple au plus complexe.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.