Compartilhar via


Alterar a notificação de ligação de dados do Windows Forms

Um dos mais importantes conceitos de ligação de dados do Windows Forms é notificação de alteração. Para garantir que sua fonte de dados e os controles acoplados sempre tenham os dados mais recentes, você deve adicionar a notificação de alteração para a ligação de dados. Especificamente, você deseja garantir que os controles acoplados são notificados das alterações que foram feitas à sua fonte de dados e a fonte de dados é notificada das alterações que foram feitas às propriedades de um controle acopladas.

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

  • Ligação simples, no qual propriedade de uma único controle está acoplada a uma única instância de um objeto.

  • Vinculação baseados em lista, que pode incluir uma propriedade de controle único vinculada para a propriedade de um item em uma lista ou um controle acoplado a uma lista de objetos.

Além disso, se você estiver criando controles Windows Forms que você deseja usar para vinculação de dados, você deve aplicar o PropertyNamealterado o padrão para controles, para que as alterações à propriedade de um controle acoplada são propagadas para a fonte de dados.

Notificação de alteração de ligação simples

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

Alterar notificação para ligação baseados em lista

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

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

Finalmente, do lado do controle você deve expor um PropertyNameo evento Changed para cada propriedade projetado para ser acoplado a dados. As alterações à propriedade de controle, em seguida, são propagadas para a fonte de dados ligada. Para mais informações, consulte: Como: Aplicar o padrão de PropertyNameChanged.

Consulte também

Referência

BindingSource

INotifyPropertyChanged

BindingList<T>

Conceitos

Fontes de dados suportados pelo Windows Forms

Ligação de dados e o Windows Forms

Outros recursos

Ligação de dados de formulários do Windows