Compartilhar via


Notificação de alteração na associação de dados do Windows Forms

Um dos conceitos mais importantes da vinculação de dados do Windows Forms é a notificação de alterações. Para garantir que a fonte de dados e os controles vinculados sempre tenham os dados mais recentes, você deve adicionar notificação de alteração para associação de dados. Especificamente, você deseja garantir que os controles vinculados sejam notificados sobre as alterações feitas em sua fonte de dados e que a fonte de dados seja notificada sobre as alterações feitas nas propriedades vinculadas de um controle.

Existem diferentes tipos de notificação de alteração, dependendo do tipo de associação de dados:

  • Vinculação simples, na qual uma única propriedade de controle é vinculada a uma única instância de um objeto.

  • Associação baseada em lista, que pode incluir uma única propriedade de controle vinculada à propriedade de um item em uma lista ou uma propriedade de controle vinculada a uma lista de objetos.

Além disso, se você estiver criando controles do Windows Forms que deseja usar para associação de dados, deverá aplicar o padrão PropertyNameChanged aos controles, para que as alterações na propriedade vinculada de um controle sejam propagadas para a fonte de dados.

Notificação de alteração para vinculação simples

Para vinculação simples, os objetos de negócios devem fornecer notificação de alteração quando o valor de uma propriedade vinculada for alterado. Você pode fazer isso expondo um evento PropertyNameChanged para cada propriedade do seu objeto de negócios e vinculando o objeto de negócios a controles com o ou o método preferencial no qual seu objeto de negócios implementa a INotifyPropertyChanged interface e gera um PropertyChanged evento quando o BindingSource valor de uma propriedade é alterado. Para obter mais informações, consulte Como: Implementar a interface INotifyPropertyChanged. Quando você usa objetos que implementam a interface, você não precisa usar o para vincular o objeto a INotifyPropertyChanged um controle, mas usar o BindingSourceBindingSource é recomendado.

Notificação de alteração para vinculação baseada em lista

O Windows Forms depende de uma lista acoplada para fornecer informações de alteração de propriedade (alterações no valor da propriedade de um item de lista) e de lista alterada (um item é excluído ou adicionado à lista) para controles acoplados. Portanto, as listas usadas para vinculação de dados devem implementar o IBindingList, que fornece ambos os tipos de notificação de alteração. O BindingList<T> é uma implementação genérica de e foi projetado para uso com a vinculação de dados do IBindingList Windows Forms. Você pode criar um que contém um BindingList<T> tipo de objeto de INotifyPropertyChanged negócios que implementa e a lista converterá automaticamente os PropertyChanged eventos em ListChanged eventos. Se a lista acoplada não for um IBindingList, você deverá vincular a lista de objetos aos controles do Windows Forms usando o BindingSource componente. O BindingSource componente fornecerá conversão de propriedade para lista semelhante à do BindingList<T>. Para obter mais informações, consulte Como: Aumentar notificações de alteração usando um BindingSource e a interface INotifyPropertyChanged.

Notificação de alteração para controles personalizados

Finalmente, do lado do controle, você deve expor um evento PropertyNameChanged para cada propriedade projetada para ser vinculada aos dados. As alterações na propriedade de controle são propagadas para a fonte de dados associada. Para obter mais informações, consulte Como: Aplicar o padrão PropertyNameChanged

Confira também