Notificação de alteração na vinculação de dados do Windows Forms
Um dos conceitos mais importantes da vinculação de dados do Windows Forms é notificação de alteração. Para garantir que sua fonte de dados e controles acoplados sempre tenham os dados mais recentes, você deve adicionar notificação de alteração para vinculação de dados. Especificamente, você deseja garantir que os controles vinculados sejam notificados das alterações feitas em sua fonte de dados e que a fonte de dados seja notificada das alterações feitas nas propriedades vinculadas de um controle.
Existem diferentes tipos de notificação de alteração, dependendo do tipo de vinculação de dados:
Vinculação simples, na qual uma única propriedade de controle é vinculada a uma única instância de um objeto.
Vinculaçã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 Windows Forms que você deseja usar para associação de dados, você deve 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, seja usando o método BindingSource ou o método preferido no qual seu objeto de negócios implementa a interface INotifyPropertyChanged e gera um evento PropertyChanged quando o valor de uma propriedade muda. Para obter mais informações, consulte Como implementar a interface INotifyPropertyChanged. Quando você usa objetos que implementam a interface INotifyPropertyChanged, não é necessário usar o BindingSource para vincular o objeto a um controle, mas o uso do BindingSource é recomendado.
Notificação de alteração para vinculação de List-Based
O Windows Forms depende de uma lista vinculada para fornecer informações de alteração de propriedade (um valor de propriedade de item de lista é alterado) e alterações na lista (um item é excluído ou adicionado à lista) para controles vinculados. 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 do IBindingList e foi 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 os eventos PropertyChanged em eventos ListChanged. Se a lista acoplada não for um IBindingList, você deverá vincular a lista de objetos aos controles do Windows Forms usando o componente BindingSource. O componente BindingSource fornecerá conversão de propriedades em lista semelhante à do BindingList<T>. Para obter mais informações, consulte Como gerar notificações de alteração usando um BindingSource e a interface INotifyPropertyChanged.
Notificação de alteração para controles personalizados
Finalmente, do lado do controlo, terá de expor um evento PropertyNameChanged para cada propriedade projetada para ser vinculada a dados. As alterações na propriedade de controlo são propagadas para a origem de dados vinculada. Para obter mais informações, consulte Como aplicar o padrão PropertyNameChanged
Ver também
.NET Desktop feedback