Notificación de cambios en el enlace de datos de Windows Forms

Uno de los conceptos más importantes del enlace de datos de Windows Forms es la notificación de cambios. Para garantizar que el origen de datos y los controles enlazados siempre tengan los datos más recientes, deberá agregar la notificación de cambios para el enlace de datos. En concreto, deberá garantizar que se notifiquen a los controles enlazados los cambios realizados en su origen de datos y que se notifiquen al origen de datos los cambios realizados en las propiedades enlazadas de un control.

Hay diferentes tipos de notificación de cambios, dependiendo del tipo de enlace de datos:

  • Enlace sencillo, donde una sola propiedad de control está enlazada a una sola instancia de un objeto.

  • Enlace basado en lista, donde una sola propiedad de control está enlazada a la propiedad de un elemento de una lista, o bien, una propiedad de control está enlazada a una lista de objetos.

Además, si crea controles de formularios Windows Forms para utilizarlos en enlaces a datos, deberá aplicar el modelo nombreDePropiedadChanged a los controles, de modo que los cambios que se realicen en la propiedad enlazada de un control se propaguen al origen de datos.

Notificación de cambios para el enlace sencillo

En el caso del enlace sencillo, los objetos comerciales deben proporcionar la notificación de cambios cuando cambia el valor de una propiedad enlazada. Para ello, exponga un evento nombreDePropiedadChanged para cada propiedad del objeto comercial y enlace los objetos comerciales a los controles con BindingSource o el método preferido donde el objeto comercial implementa la interfaz INotifyPropertyChanged y provoca un evento PropertyChanged cuando cambia el valor de una propiedad. Para obtener más información, vea Cómo: Implementar la interfaz INotifyPropertyChanged. Si utiliza objetos que implementan la interfaz INotifyPropertyChanged, no es preciso utilizar BindingSource para enlazar el objeto a un control, sino que se recomienda utilizar BindingSource.

Notificación de cambios para el enlace basado en lista

Windows Forms depende de una lista enlazada para proporcionar a los controles enlazados información sobre el cambio de las propiedades (cambia un valor de propiedad de un elemento de la lista ) y los cambios de la lista (se elimina o se agrega un elemento a la lista). Por consiguiente, las listas utilizadas para el enlace de datos deben implementar la interfaz IBindingList, que proporciona ambos tipos de notificación de cambios. BindingList<T> es una implementación genérica de IBindingList y se ha diseñado para el enlace de datos de formularios Windows Forms. Se puede crear una BindingList<T> que contenga un tipo de objeto comercial que implemente la interfaz INotifyPropertyChanged y la lista convertirá automáticamente los eventos PropertyChanged en eventos ListChanged. Si la lista enlazada no es una interfaz IBindingList, deberá enlazar la lista de objetos a los controles de Windows Forms mediante el componente BindingSource. El componente BindingSource proporcionará una conversión de propiedad a lista similar a la de BindingList<T>. Para obtener más información, vea Cómo: Provocar notificaciones de cambios mediante BindingSource y la interfaz INotifyPropertyChanged.

Notificación de cambios para los controles personalizados

Finalmente, desde el control, debe exponer un evento nombreDePropiedadChanged para cada propiedad diseñada para el enlace a datos. Los cambios en la propiedad de control se propagarán al origen de datos enlazado. Para obtener más información, vea Cómo: Aplicar el modelo PropertyNameChanged.

Vea también

Referencia

BindingSource

INotifyPropertyChanged

BindingList<T>

Conceptos

Orígenes de datos compatibles con formularios Windows Forms

Enlace de datos y formularios Windows Forms

Otros recursos

Enlace de datos en Windows Forms