Partager via


Notification de modifications dans la liaison de données Windows Forms

L’un des concepts les plus importants de la liaison de données Windows Forms est la notification de modification. Pour vous assurer que vos contrôles liés et source de données ont toujours les données les plus récentes, vous devez ajouter une notification de modification pour la liaison de données. Plus précisément, vous souhaitez vous assurer que les contrôles liés sont avertis des modifications apportées à leur source de données et que la source de données est avertie des modifications apportées aux propriétés liées d’un contrôle.

Il existe différents types de notification de modification, en fonction du type de liaison de données :

  • Liaison simple, dans laquelle une propriété de contrôle unique est liée à une seule instance d’un objet.

  • Liaison basée sur la liste, qui peut inclure une propriété de contrôle unique liée à la propriété d’un élément dans une liste ou une propriété de contrôle liée à une liste d’objets.

En outre, si vous créez des contrôles Windows Forms que vous souhaitez utiliser pour la liaison de données, vous devez appliquer le modèle PropertyNameChanged aux contrôles afin que les modifications apportées à la propriété liée d’un contrôle soient propagées à la source de données.

Notification de modification pour une liaison simple

Pour une liaison simple, les objets métier doivent fournir une notification de modification lorsque la valeur d’une propriété liée change. Pour ce faire, vous pouvez exposer un événement PropertyNameChanged pour chaque propriété de votre objet métier et lier l’objet métier aux contrôles avec la BindingSource méthode ou la méthode préférée dans laquelle votre objet métier implémente l’interface INotifyPropertyChanged et déclenche un événement lorsque la valeur d’une PropertyChanged propriété change. Pour plus d’informations, consultez How to : Implement the INotifyPropertyChanged Interface. Lorsque vous utilisez des objets qui implémentent l’interface INotifyPropertyChanged , vous n’avez pas besoin d’utiliser l’objet BindingSource pour lier l’objet à un contrôle, mais l’utilisation BindingSource est recommandée.

Notification de modification pour la liaison basée sur la liste

Windows Forms dépend d’une liste liée pour fournir des modifications de propriété (modifications de valeur de propriété d’élément de liste) et des informations modifiées (un élément est supprimé ou ajouté à la liste) aux contrôles liés. Par conséquent, les listes utilisées pour la liaison de données doivent implémenter le IBindingList, qui fournit les deux types de notification de modification. Il BindingList<T> s’agit d’une implémentation générique dont elle est conçue pour être utilisée avec la liaison de IBindingList données Windows Forms. Vous pouvez créer un BindingList<T> type d’objet métier qui implémente INotifyPropertyChanged et la liste convertit automatiquement les PropertyChanged événements en ListChanged événements. Si la liste liée n’est pas un IBindingList, vous devez lier la liste d’objets aux contrôles Windows Forms à l’aide du BindingSource composant. Le BindingSource composant fournit une conversion de propriété en liste similaire à celle du BindingList<T>. Pour plus d’informations, consultez Guide pratique pour déclencher des notifications de modification à l’aide d’une liaisonSource et de l’interface INotifyPropertyChanged.

Notification de modification pour les contrôles personnalisés

Enfin, du côté du contrôle, vous devez exposer un événement PropertyNameChanged pour chaque propriété conçue pour être liée aux données. Les modifications apportées à la propriété de contrôle sont ensuite propagées à la source de données liée. Pour plus d’informations, consultez How to : Apply the PropertyNameChanged Pattern

Voir aussi