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

Mise à jour : novembre 2007

L'un des concepts les plus importants de la liaison de données Windows Forms est la notification de modifications. Pour garantir que votre source de données et vos contrôles dépendants disposent toujours des données les plus récentes, vous devez ajouter la notification de modifications pour la liaison de données. Spécifiquement, vous souhaitez vous assurer que les contrôles dépendants sont notifiés des modifications apportées à leur source de données et que la source de données est notifiée des modifications faites aux propriétés liées d'un contrôle.

Il existe plusieurs types de notification de modifications, selon le type de liaison de données :

  • la liaison simple dans laquelle une seule propriété de contrôle est liée à une seule instance d'un objet ;

  • la liaison basée sur liste qui peut inclure une seule propriété de contrôle liée à la propriété d'un élément de 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 NomPropriétéChanged 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 modifications pour la liaison simple

Dans le cas d'une liaison simple, les objets métier doivent fournir la notification de modifications lorsque la valeur d'un propriété liée change. Pour ce faire, exposez un événement NomPropriétéChanged pour chaque propriété de l'objet métier et liez cet objet aux contrôles avec BindingSource ou avec la méthode par défaut dans laquelle votre objet métier implémente l'interface INotifyPropertyChanged et déclenche un événement PropertyChanged lorsque la valeur d'une propriété change. Pour plus d'informations, consultez Comment : implémenter l'interface INotifyPropertyChanged. Lorsque vous utilisez des objets qui implémentent l'interface INotifyPropertyChanged, il n'est pas nécessaire d'avoir recours à BindingSource pour lier l'objet à un contrôle, mais il est conseillé d'utiliser BindingSource.

Notification de modifications pour la liaison basée sur liste

Windows Forms a recours à une liste liée pour fournir aux contrôles dépendants des informations sur les modifications apportées aux propriétés (modification de la valeur de propriété d'un élément de liste) et à une liste (suppression ou ajout d'un élément à la liste). Par conséquent, les listes utilisées pour la liaison de données doivent implémenter IBindingList, qui fournit les deux types de notification de modifications. BindingList<T> est une implémentation générique de IBindingList, conçue pour être utilisée avec la liaison de données Windows Forms. Vous pouvez créer un BindingList<T> qui contient un type d'objet métier implémentant INotifyPropertyChanged et la liste convertira automatiquement les événements PropertyChanged en événements ListChanged. Si la liste liée n'est pas un IBindingList, vous devez lier la liste d'objets aux contrôles Windows Forms en utilisant le composant BindingSource. Le composant BindingSource fournit une conversion des propriétés en liste similaire à celle de BindingList<T>. Pour plus d'informations, consultez Comment : générer des notifications de modifications à l'aide d'un BindingSource et de l'interface INotifyPropertyChanged.

Notifications de modifications pour les contrôles personnalisés

Côté contrôle, vous devez exposer un événement NomPropriétéChanged pour chaque propriété conçue pour être liée aux données. Les modifications apportées à la propriété du contrôle sont ensuite propagées à la source de données liée. Pour plus d'informations, consultez Comment : appliquer le modèle PropertyNameChanged

Voir aussi

Concepts

Sources de données prises en charge par les Windows Forms

Liaison de données et Windows Forms

Référence

BindingSource

INotifyPropertyChanged

BindingList<T>

Autres ressources

Liaison de données Windows Forms