Este artigo foi traduzido por máquina. Coloque o ponteiro do mouse sobre as frases do artigo para ver o texto original. Mais informações.
Tradução
Original
Este tópico ainda não foi avaliado como - Avalie este tópico

Classe BindingSource

Encapsula a fonte de dados para um formulário.

Namespace:  System.Windows.Forms
Assembly:  System.Windows.Forms (em System.Windows.Forms.dll)
[ComplexBindingPropertiesAttribute("DataSource", "DataMember")]
public class BindingSource : Component, 
	IBindingListView, IBindingList, IList, ICollection, IEnumerable, 
	ITypedList, ICancelAddNew, ISupportInitializeNotification, ISupportInitialize, ICurrencyManagerProvider

O tipo BindingSource expõe os membros a seguir.

  NomeDescrição
Método públicoBindingSource()Inicializa uma nova instância da BindingSource classe para os valores de propriedade padrão.
Método públicoBindingSource(IContainer)Inicializa uma nova instância da BindingSource de classe e adiciona a BindingSource para o contêiner especificado.
Método públicoBindingSource(Object, String)Inicializa uma nova instância da BindingSource classe com a fonte de dados especificada e o membro de dados.
Superior
  NomeDescrição
Propriedade públicaAllowEditObtém um valor que indica se os itens na lista subjacente podem ser editados.
Propriedade públicaAllowNewObtém ou define um valor indicando se a AddNew método pode ser usado para adicionar itens à lista.
Propriedade públicaAllowRemoveObtém um valor que indica se os itens podem ser removidos da lista subjacente.
Propriedade protegidaCanRaiseEventsObtém um valor indicando se o componente pode disparar um evento. (Herdado de Component.)
Propriedade públicaContainerObtém o IContainer que contém o Component. (Herdado de Component.)
Propriedade públicaCountObtém o número total de itens na lista subjacente, levando a atual Filter valor em consideração.
Propriedade públicaCurrencyManagerObtém o Gerenciador de moeda associado a isso BindingSource.
Propriedade públicaCurrentObtém o item atual na lista.
Propriedade públicaDataMemberObtém ou define a lista específica na fonte de dados ao qual o conector atualmente liga a.
Propriedade públicaDataSourceObtém ou define a fonte de dados que vincula o conector.
Propriedade protegidaDesignMode Obtém um valor que indica se o Component está em modo de design. (Herdado de Component.)
Propriedade protegidaEvents Obtém a lista de manipuladores de eventos que estão conectados a este Component. (Herdado de Component.)
Propriedade públicaFilterObtém ou define a expressão usada para filtrar quais linhas são exibidas.
Propriedade públicaIsBindingSuspendedObtém um valor indicando se a ligação da lista está suspenso.
Propriedade públicaIsFixedSizeObtém um valor indicando se a lista subjacente tem um tamanho fixo.
Propriedade públicaIsReadOnlyObtém um valor que indica se a lista subjacente é somente leitura.
Propriedade públicaIsSortedObtém um valor que indica se os itens na lista subjacente são classificados.
Propriedade públicaIsSynchronizedObtém um valor indicando se o acesso à coleção é sincronizado (segmento seguro).
Propriedade públicaItemObtém ou define o elemento de lista no índice especificado.
Propriedade públicaListObtém a lista que o conector está vinculado.
Propriedade públicaPositionObtém ou define o índice do item atual na lista subjacente.
Propriedade públicaRaiseListChangedEventsObtém ou define um valor indicando se ListChanged eventos devem ser gerados.
Propriedade públicaSiteObtém ou define o ISite da Component. (Herdado de Component.)
Propriedade públicaSortObtém ou define os nomes de coluna usados para classificação e a ordem de classificação para exibir as linhas na fonte de dados.
Propriedade públicaSortDescriptionsObtém a coleção de classificação descrições aplicadas à fonte de dados.
Propriedade públicaSortDirectionObtém a direção em que os itens na lista são classificados.
Propriedade públicaSortPropertyInfraestrutura. Obtém o PropertyDescriptor que está sendo usado para classificar a lista.
Propriedade públicaSupportsAdvancedSortingObtém um valor indicando se a fonte de dados oferece suporte à classificação várias colunas.
Propriedade públicaSupportsChangeNotificationObtém um valor indicando se a fonte de dados oferece suporte à notificação de alteração.
Propriedade públicaSupportsFilteringObtém um valor indicando se a fonte de dados oferece suporte à filtragem.
Propriedade públicaSupportsSearchingObtém um valor indicando se a fonte de dados oferece suporte à pesquisa com o Find método.
Propriedade públicaSupportsSortingObtém um valor indicando se a fonte de dados oferece suporte à classificação.
Propriedade públicaSyncRootObtém um objeto que pode ser usado para sincronizar o acesso para a lista subjacente.
Superior
  NomeDescrição
Método públicoAddAdiciona um item existente para a lista interna.
Método públicoAddNewAdiciona um novo item à lista subjacente.
Método públicoApplySort(ListSortDescriptionCollection)Classifica a fonte de dados com as descrições de classificação especificada.
Método públicoApplySort(PropertyDescriptor, ListSortDirection)Classifica a fonte de dados usando a direção de classificação e o descritor de propriedade especificada.
Método públicoCancelEditCancela a operação de edição atual.
Método públicoClearRemove todos os elementos da lista.
Método públicoContainsDetermina se um objeto é um item na lista.
Método públicoCopyToCopia o conteúdo da List para a matriz especificada, iniciando com o valor de índice especificado.
Método públicoCreateObjRefCria um objeto que contém todas as informações relevantes necessárias para gerar um proxy usado para se comunicar com um objeto remoto. (Herdado de MarshalByRefObject.)
Método públicoDispose() Libera todos os recursos usados pelo Component. (Herdado de Component.)
Método protegidoDispose(Boolean)Libera os recursos não gerenciados usados pela BindingSource e, opcionalmente, libera os recursos gerenciados. (Substitui Component.Dispose(Boolean).)
Método públicoEndEditAplica as alterações pendentes a fonte de dados subjacente.
Método públicoEquals(Object) Verifica se o objeto especificado é igual ao objeto atual. (Herdado de Object.)
Método protegidoFinalizeLibera os recursos não gerenciados e executa outras operações de limpeza antes do Component é recuperados pela coleta de lixo. (Herdado de Component.)
Método públicoFind(PropertyDescriptor, Object)Procura o índice do item que tenha o descritor de determinada propriedade.
Método públicoFind(String, Object)Retorna o índice do item na lista com o nome da propriedade especificada e valor.
Método públicoGetEnumeratorRecupera um enumerador para o List.
Método públicoGetHashCodeServe como uma função hash para um tipo específico. (Herdado de Object.)
Método públicoGetItemPropertiesRecupera uma matriz de PropertyDescriptor o tipo de lista de origem de objetos que representam as propriedades vinculáveis dos dados.
Método públicoGetLifetimeServiceRecupera o objeto de serviço vida útil atual que controla a diretiva de vida útil para esta instância. (Herdado de MarshalByRefObject.)
Método públicoGetListNameObtém o nome da lista fornecendo dados para a ligação.
Método públicoGetRelatedCurrencyManagerObtém o Gerenciador de moeda relacionados para o membro de dados especificado.
Método protegidoGetServiceRetorna um objeto que representa um serviço fornecido pela Component ou por seus Container. (Herdado de Component.)
Método públicoGetType Obtém o Type da instância atual. (Herdado de Object.)
Método públicoIndexOfProcura o objeto especificado e retorna o índice da primeira ocorrência dentro da lista inteira.
Método públicoInitializeLifetimeServiceObtém um objeto de serviço de tempo de vida para controlar a diretiva vida útil para esta instância. (Herdado de MarshalByRefObject.)
Método públicoInsertInsere um item na lista no índice especificado.
Método protegidoMemberwiseClone()Cria uma cópia superficial do Object atual. (Herdado de Object.)
Método protegidoMemberwiseClone(Boolean)Cria uma cópia superficial do atual MarshalByRefObject objeto. (Herdado de MarshalByRefObject.)
Método públicoMoveFirstMove para o primeiro item na lista.
Método públicoMoveLastMove para o último item na lista.
Método públicoMoveNextMove para o próximo item na lista.
Método públicoMovePreviousMove para o item anterior na lista.
Método protegidoOnAddingNewGera o evento AddingNew.
Método protegidoOnBindingCompleteGera o evento BindingComplete.
Método protegidoOnCurrentChangedGera o evento CurrentChanged.
Método protegidoOnCurrentItemChangedGera o evento CurrentItemChanged.
Método protegidoOnDataErrorGera o evento DataError.
Método protegidoOnDataMemberChangedGera o evento DataMemberChanged.
Método protegidoOnDataSourceChangedGera o evento DataSourceChanged.
Método protegidoOnListChangedGera o evento ListChanged.
Método protegidoOnPositionChangedGera o evento PositionChanged.
Método públicoRemoveRemove o item especificado da lista.
Método públicoRemoveAtRemove o item no índice especificado na lista.
Método públicoRemoveCurrentRemove o item atual da lista.
Método públicoRemoveFilterRemove o filtro associado a BindingSource.
Método públicoRemoveSortRemove a classificação associada com o BindingSource.
Método públicoResetAllowNewInfraestrutura. Reinicializa o AllowNew propriedade.
Método públicoResetBindingsFaz com que um controle acoplado a BindingSource para reler todos os itens na lista e atualizar seus valores exibidos.
Método públicoResetCurrentItemFaz com que um controle acoplado a BindingSource para reler o item atualmente selecionado e atualizar o seu valor exibido.
Método públicoResetItemFaz com que um controle acoplado a BindingSource para reler o item no índice especificado e atualizar o seu valor exibido.
Método públicoResumeBindingReinicia a ligação de dados.
Método públicoSuspendBindingSuspende a ligação de dados para impedir que alterações atualizar a fonte de dados ligada.
Método públicoToStringRetorna uma String contendo o nome do Component, se houver. Este método não deve ser substituído. (Herdado de Component.)
Superior
  NomeDescrição
Evento públicoAddingNewOcorre antes que um item é adicionado à lista subjacente.
Evento públicoBindingCompleteOcorre quando todos os clientes tenham sido vinculados a esta BindingSource.
Evento públicoCurrentChangedOcorre quando o item ligado no momento é alterado.
Evento públicoCurrentItemChangedOcorre quando um valor de propriedade do Current propriedade foi alterada.
Evento públicoDataErrorOcorre quando uma exceção de moeda silenciosamente é tratada pelo BindingSource.
Evento públicoDataMemberChangedOcorre quando o DataMember o valor da propriedade foi alterada.
Evento públicoDataSourceChangedOcorre quando o DataSource o valor da propriedade foi alterada.
Evento públicoDisposedOcorre quando o componente é descartado por uma chamada do método Dispose. (Herdado de Component.)
Evento públicoListChangedOcorre quando altera a lista muda subjacente ou um item na lista.
Evento públicoPositionChangedOcorre após o valor da Position propriedade foi alterada.
Superior
  NomeDescrição
Método de extensão públicoAsParallelPermite que o parallelization de uma consulta. (Definido por ParallelEnumerable.)
Método de extensão públicoAsQueryableConverts an IEnumerable to an IQueryable. (Definido por Queryable.)
Método de extensão públicoCast<TResult>Projeta os elementos de um IEnumerable para o tipo especificado. (Definido por Enumerable.)
Método de extensão públicoOfType<TResult>Filtra os elementos de um IEnumerable com base em um tipo especificado. (Definido por Enumerable.)
Superior
  NomeDescrição
Implementação explícita da interfaceMétodo particularIBindingList.AddIndexAdiciona o PropertyDescriptor para os índices usados para pesquisa.
Implementação explícita da interfaceMétodo particularIBindingList.RemoveIndexRemove o System.ComponentModel.PropertyDescriptor partir os índices usados para pesquisa.
Implementação explícita da interfaceMétodo particularICancelAddNew.CancelNewDescarta um novo item pendente da coleção.
Implementação explícita da interfaceMétodo particularICancelAddNew.EndNewConfirma um novo item pendente à coleção.
Implementação explícita da interfaceMétodo particularISupportInitialize.BeginInitSinais de BindingSource que a inicialização está iniciando.
Implementação explícita da interfaceMétodo particularISupportInitialize.EndInitSinais de BindingSource que a inicialização for concluída.
Implementação explícita da interfaceEvento particularISupportInitializeNotification.InitializedOcorre quando o BindingSource é inicializada.
Implementação explícita da interfacePropriedade particularISupportInitializeNotification.IsInitializedObtém um valor indicando se a BindingSource é inicializada.
Superior

O BindingSource componente serve a muitas finalidades. Primeiro, ele simplifica ligação controles em um formulário aos dados fornecendo gerenciamento corrente, notificação de alteração e outros serviços entre Formulários do Windows Fontes controles e dados. Isso é feito, anexando o BindingSource componente sua fonte de dados usando o DataSource propriedade. Para cenários de ligação complexos, opcionalmente, você pode definir a DataMember propriedade para uma coluna específica ou a lista de fonte de dados. Você, em seguida, vincula controles a BindingSource. Toda a interação com os dados mais é obtida com chamadas para o BindingSource componente. Para obter exemplos de como o BindingSource pode simplificar o processo de ligação, consulte Como: vincular controles Windows Forms a valores de banco de dados DBNull e Como: tratar erros e exceções que ocorrem com ligação de dados. Navegação e a atualização da fonte de dados é realizada através de métodos, como MoveNext, MoveLast, e Remove. Operações como, por exemplo, classificação e filtragem são manipuladas através do Sort e Filter propriedades. Para obter mais informações sobre como usar a classificação e filtragem com o BindingSource, consulte Como: classificar e filtrar dados ADO.NET com o componente BindingSource do Windows Forms.

Além disso, o BindingSource componente pode atuar como uma fonte de dados com rigidez de tipos. Normalmente, o tipo de fonte de dados subjacente é corrigido por meio de um dos mecanismos a seguir:

  • Use o Add método para adicionar um item para o BindingSource componente.

  • Definir o DataSource propriedade para uma lista, um único objeto ou um tipo.

Ambos esses mecanismos de criar uma lista com rigidez de tipos. Para obter mais informações sobre como usar o BindingSource para vincular a um tipo, consulte Como: ligar um controle Windows Forms a um tipo. Você também pode usar o BindingSource para ligar os controles a um objeto de fábrica. Para obter mais informações sobre como fazer isso, consulte Como: ligar um controle Windows Forms a um objeto de fábrica.

ObservaçãoObservação

Porque um BindingSource alças de ambas as fontes de dados simples e complexa, terminologia é problemática. Dentro desta documentação de classe, o termo lista se refere a uma coleção de dados na fonte de dados hospedado, e item indica um único elemento. Quando discutir funcionalidade associadas com fontes de dados complexos, os termos equivalentes tabela e linha são usados.

BindingSource fornece a membros para acessar os dados subjacentes. O item atual pode ser recuperado através de Current propriedade e a lista inteira podem ser recuperado por meio do List propriedade. Operações de edição são compatíveis com o item atual por meio de Current e o RemoveCurrent, EndEdit, CancelEdit e Add e AddNew métodos. Embora o gerenciamento de moeda é manipulado automaticamente para todos os tipos de fonte de dados subjacente, essa classe expõe um número de eventos, tais como CurrentItemChanged e DataSourceChanged, que permitem a personalização.

Fontes de dados que são vinculados a um BindingSource componente também pode ser navegado e gerenciado com o BindingNavigator classe, que fornece uma interface de usuário VCR semelhante (UI) para navegar pelos itens de uma lista. Embora BindingNavigator pode ser vinculado a qualquer fonte de dados, ele foi projetado para integrar com um BindingSource componente por meio de sua BindingNavigator.BindingSource propriedade.

A propriedade padrão para o BindingSource é a classe DataSource. O evento padrão é CurrentChanged.

Observação de cuidadoCuidado

Muitos dos membros da BindingSource classe operam sobre a lista subjacente representada pela List propriedade e simplesmente consultar sua operação para a lista subjacente. Portanto, quando o BindingSource está vinculado a uma implementação personalizada do IList, o comportamento exato desses membros pode ser diferente do comportamento descrito na documentação da classe. Por exemplo, o RemoveAt chamadas de método IList.RemoveAt. O BindingSource documentação descreve o RemoveAt método com o entendimento de que o RemoveAt método para base IList é implementada corretamente.

O exemplo de código a seguir demonstra um ListBox acoplado a um BindingSource. O BindingSource está vinculado a um BindingList<T> que contém uma lista de fontes.


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace BindingSourceExamples
{
    public class Form1 : Form
    {
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.Run(new Form1());
        }

        public Form1()
        {
            this.Load += new EventHandler(Form1_Load);
        }

        private TextBox textBox1;
        private Button button1;
        private ListBox listBox1;

        private BindingSource binding1;
        void Form1_Load(object sender, EventArgs e)
        {
            listBox1 = new ListBox();
            textBox1 = new TextBox();
            binding1 = new BindingSource();
            button1 = new Button();
            listBox1.Location = new Point(140, 25);
            listBox1.Size = new Size(123, 160);
            textBox1.Location = new Point(23, 70);
            textBox1.Size = new Size(100, 20);
            textBox1.Text = "Wingdings";
            button1.Location = new Point(23, 25);
            button1.Size = new Size(75, 23);
            button1.Text = "Search";
            button1.Click += new EventHandler(this.button1_Click);
            this.ClientSize = new Size(292, 266);
            this.Controls.Add(this.button1);
            this.Controls.Add(this.textBox1);
            this.Controls.Add(this.listBox1);

            MyFontList fonts = new MyFontList();
            for (int i = 0; i < FontFamily.Families.Length; i++)
            {
                if (FontFamily.Families[i].IsStyleAvailable(FontStyle.Regular))
                    fonts.Add(new Font(FontFamily.Families[i], 11.0F, FontStyle.Regular));
            }
            binding1.DataSource = fonts;
            listBox1.DataSource = binding1;
            listBox1.DisplayMember = "Name";

        }


        private void button1_Click(object sender, EventArgs e)
        {
            if (binding1.SupportsSearching != true)
                MessageBox.Show("Cannot search the list.");
            else
            {
                int foundIndex = binding1.Find("Name", textBox1.Text);
                if (foundIndex > -1)
                    listBox1.SelectedIndex = foundIndex;
                else
                    MessageBox.Show("Font was not found.");
            }
        }
    }

    public class MyFontList : BindingList<Font>
    {

        protected override bool SupportsSearchingCore
        {
            get { return true; }
        }
        protected override int FindCore(PropertyDescriptor prop, object key)
        {
            // Ignore the prop value and search by family name.
            for (int i = 0; i < Count; ++i)
            {
                if (Items[i].FontFamily.Name.ToLower() == ((string)key).ToLower())
                    return i;

            }
            return -1;
        }


    }

}


.NET Framework

Com suporte em: 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Com suporte em: 4, 3.5 SP1

Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Função Server Core sem suporte), Windows Server 2008 R2 (Função Server Core com suporte com o SP1 ou posterior, Itanium sem suporte)

O .NET Framework não oferece suporte a todas as versões de cada plataforma. Para obter uma lista das versões com suporte, consulte .Requisitos de sistema do NET Framework.
Quaisquer membros estático (Shared no Visual Basic) públicos deste tipo são thread-safe. Não há garantia de que qualquer membro de instância seja thread-safe.
Isso foi útil para você?
(1500 caracteres restantes)

Contribuições da comunidade

ADICIONAR
© 2013 Microsoft. Todos os direitos reservados.