Interfaces relacionadas vinculação de dados
Com ADO.NET, você pode criar muitas estruturas de dados diferentes para atender às necessidades do seu aplicativo e os dados que você está trabalhando com vinculação. É aconselhável criar suas próprias classes que fornecem ou consumam dados no Windows Forms.Esses objetos podem oferecer vários níveis de funcionalidade e a complexidade, desde vinculação de dados básicos, fornecer suporte em time de design, a verificação de erros, notificação de alterar ou até mesmo suporte para uma reversão das alterações feitas aos dados em si estruturados.
Consumidores de interfaces de ligação de dados
Seções a seguir descrevem os dois grupos de objetos da interface.O primeiro agrupar lista interfaces que são implementadas em fontes de dados por autores de fonte de dados.Essas interfaces são projetadas para serem consumidos por consumidores de fonte de dados, que estão na maioria dos casos que controles Windows Forms ou componentes.O segundo agrupar lista interfaces projetados para ser usado por autores de componente.Os autores do componente usar essas interfaces quando eles estão criando um componente que suporta vinculação de dados a ser consumido pelo mecanismo de vinculação de dados do Windows Forms.Você pode implementar essas interfaces de classes associadas ao seu formulário para habilitar vinculação de dados; cada caso apresenta uma classe que implementa uma interface que permite a interação com os dados.Visual Studio ferramentas de experiência de design de dados de (RAD) método RAD já aproveitam essa funcionalidade.
Para obter mais informações sobre como implementar interfaces, consulte Palavra-chave Implements e a Implements instrução (Visual Basic) ou interface (Referência C#) (Translation from VPE for Csharp palavra-chave).
Interfaces para implementação por autores de fonte de dados
As seguintes interfaces são projetadas para serem consumidos por controles Windows Forms:
IList interface
Uma classe que implementa o IList interface poderia ser um Array, ArrayList, ou CollectionBase. Esses são indexadas listas de itens do tipo Object. Essas listas devem conter tipos homogêneos, porque o primeiro item do índice determina o tipo.IList estaria disponível para a ligação apenas em time de execução.
Observação: Se você deseja criar uma lista de objetos de negócios para a ligação com o Windows Forms, você deve considerar o uso do BindingList<T>.The BindingList<T> uma classe extensível que implementa as interfaces primárias é necessária para vinculação de dados bidirecional do Windows Forms.
IBindingList interface
Uma classe que implementa o IBindingList interface fornece um nível muito mais alto de funcionalidade de ligação de dados. Essa implementação oferece recursos básicos de classificação e notificação de alterar, tanto para quando a lista de itens alterar (por exemplo, o terceiro item em uma lista dos clientes tem uma alterar para o campo de endereço), bem sistema autônomo quando a própria lista Transformar (por exemplo, o número de itens na lista aumenta ou diminui).Notificação de alterar é importante se planeja fazer com que vários controles limite aos mesmos dados, e você deseja dados alterações efetuadas em um dos controles para propagar para o Outros limite controles.
Observação: alterar notificação está habilitada para o IBindingList por meio da interface do SupportsChangeNotification propriedade que, quando true, gera um ListChanged evento, indicando que a lista alterado ou um item na lista alterado.
O tipo de alterar é descrito pelo ListChangedType propriedade das ListChangedEventArgs parâmetro. Portanto, sempre que o modelo de dados é atualizado, quaisquer exibições dependentes, sistema autônomo outros controles acoplados à mesma fonte de dados, também serão atualizadas.No entanto, os objetos contidos na lista de terão que a lista de notificação quando eles altera para que a lista pode aumentar o ListChanged evento.
Observação: O BindingList<T> Fornece uma implementação genérica das IBindingList interface.
IBindingListView interface
Uma classe que implementa o IBindingListView interface fornece todas sistema autônomo funcionalidade de uma implementação de IBindingList, bem sistema autônomo filtragem e classificação a funcionalidade. Essa implementação oferece com base na seqüência de caracteres filtrar e classificar várias colunas com pares de direção do descritor de propriedade.
IEditableObject interface
Uma classe que implementa o IEditableObject interface permite que um objeto controlar quando são feitas permanentes alterações a esse objeto. Essa implementação propicia a BeginEdit, EndEdit, e CancelEdit métodos que permitem que você reverter as alterações feitas ao objeto. Veja a seguir uma breve explicação sobre o funcionamento do BeginEdit, EndEdit, e CancelEdit métodos e como eles funcionam em conjunto com um outro para habilitar uma reversão possível das alterações feitas aos dados:
The BeginEdit método sinaliza o início de uma edição em um objeto. Um objeto que implementa essa interface precisará armazenar todas as atualizações após o BeginEdit telefonar de método de tal forma que as atualizações podem ser descartadas se o CancelEdit método é chamado. No Windows Forms de vinculação de dados, você pode telefonar BeginEdit várias vezes dentro do escopo de um único edição transação (por exemplo, BeginEdit, BeginEdit, EndEdit). Implementações de IEditableObject deve controlar se BeginEdit já foi chamado e ignorar as chamadas subseqüentes para BeginEdit. Porque esse método pode ser chamado várias vezes, é importante que as chamadas subseqüentes a ele são não destrutivas; ou seja, subseqüentes BeginEdit chamadas não é possível destruir as atualizações que foram feitas ou alterar os dados que foi salvo no primeiro BeginEdit Chame.
The EndEdit método envia as alterações desde BeginEdit foi chamado no objeto subjacente, se o objeto estiver em modo de edição no momento.
The CancelEdit método descarta quaisquer alterações feitas no objeto.
Para obter mais informações sobre como a BeginEdit, EndEdit, e CancelEdit métodos funcionam, consulte Visão Geral Sobre Salvamento de Dados.
Essa noção transacional de funcionalidade de dados é usada pelo DataGridView controle.
ICancelAddNew interface
Uma classe que implementa o ICancelAddNew geralmente implementa a interface do IBindingList interface e permite que você reverta uma adição feita na fonte de dados com o AddNew método. Se sua fonte de dados implementa o IBindingList interface, você também deve ter implementar a ICancelAddNew interface.
IDataErrorInfo interface
Uma classe que implementa o IDataErrorInfo interface permite que os objetos oferecem informações de erro personalizadas para controles vinculados:
IEnumerable interface
Uma classe que implementa o IEnumerable interface geralmente é consumido por ASP.NET. Suporte de Windows Forms para esta interface só está disponível por meio de BindingSource componente.
Observação: O BindingSource componente copia todos os IEnumerable itens em uma lista separada para fins de vinculação.
ITypedList interface
Uma classe de coleções que implementa o ITypedList interface fornece a capacidade de controlar a ordem e o conjunto de propriedades exposto ao controle de limite.
Observação: Quando você implementa o GetItemProperties método e o PropertyDescriptor a matriz não é nulo, a última entrada na matriz será o descritor de propriedade que descreve a propriedade de lista que é outra lista de itens.
ICustomTypeDescriptor interface
Uma classe que implementa o ICustomTypeDescriptor interface fornece informações dinâmicas sobre si mesmo. Essa interface é semelhante a ITypedList mas é usado para objetos em vez de lista. Essa interface é usada por DataRowView para o esquema de linhas base do projeto. Uma implementação simples de ICustomTypeDescriptor é fornecida pela CustomTypeDescriptor classe.
Observação: Para oferecer suporte a ligação de time de design para tipos que implementam ICustomTypeDescriptor, o tipo deve implementar também IComponent e existe sistema autônomo uma instância no formulário.
IListSource interface
Uma classe que implementa o IListSource baseados em lista ligação em objetos da lista não permite. The GetList método de IListSource é usada para retornar uma lista ligável de um objeto que não herda de IList. IListSource é usado pela DataSet classe.
IRaiseItemChangedEvents interface
Uma classe que implementa o IRaiseItemChangedEvents interface é uma lista vinculável que também implementa o IBindingList interface. Essa interface é usada para indicar se o seu tipo aumenta ListChanged eventos do tipo ItemChanged por meio de seu RaisesItemChangedEvents propriedade.
Observação: Você deve implementar o IRaiseItemChangedEvents Se sua fonte de dados fornece a propriedade à lista evento conversão descritas anteriormente e interagir com o BindingSource componente. Caso contrário, a BindingSource também executará a propriedade para a lista eventos conversão resulta em desempenho mais lento.
ISupportInitialize interface
Um componente que implementa o ISupportInitialize interface leva as vantagens das otimizações de lote para definir propriedades e inicializando co-dependent propriedades. The ISupportInitialize contém dois métodos:
ISupportInitializeNotification interface
Um componente que implementa o ISupportInitializeNotification interface também implementa o ISupportInitialize interface. Essa interface permite notificar outros ISupportInitialize componentes que a inicialização foi concluída. The ISupportInitializeNotification interface contém dois membros:
IsInitialized Retorna um boolean valor que indica se o componente é inicializado.
Initialized ocorre quando EndInit é chamado.
INotifyPropertyChanged interface
Uma classe que implementa essa interface é um tipo que dispara um evento quando qualquer um dos seus valores de propriedade alterar.Essa interface é projetada para substituir o padrão de ter um evento de alterar para cada propriedade de um controle.Quando usado em um BindingList<T>, um objeto comercial deve implementar o INotifyPropertyChanged interface e o BindingList ` 1 serão converter PropertyChanged eventos de ListChanged eventos do tipo ItemChanged.
Observação: Para alterar notificação para ocorrer em uma ligação entre um cliente limite e a data origem seu tipo de fonte de dados acoplada seja deve implementar o INotifyPropertyChanged interface (preferido) ou você pode fornecer propertyNameChanged eventos para o tipo de limite, mas você não devem fazer ambos.
Interfaces para implementação por autores de componentes
As seguintes interfaces são projetadas para consumo pelo mecanismo de ligação de dados do Windows Forms:
IBindableComponent interface
Uma classe que implementa essa interface é um componente não controle que suporte vinculação de dados.Essa classe retorna a ligações de dados e o contexto de ligação do componente por meio de DataBindings e BindingContext propriedades desta interface.
Observação: Se seu componente herda de Control, não é necessário implementar o IBindableComponent interface.
ICurrencyManagerProvider interface
Uma classe que implementa o ICurrencyManagerProvider interface é um componente que fornece seu próprio CurrencyManager para gerenciar as ligações associadas a este componente específico. Acesso à personalizado CurrencyManager é fornecida pela CurrencyManager propriedade.
Observação: Uma classe que herda do Control gerencia automaticamente por meio de ligações seu BindingContext propriedade, então, casos em que você precisa implementar o ICurrencyManagerProvider são relativamente raros.
Consulte também
Tarefas
Como: Criar um Controlarar de Ligado de simples em um Windows Formulário
Conceitos
Vinculação de dados e do Windows Forms