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 BindingContext

Gerencia a coleção de BindingManagerBase objetos para qualquer objeto que herda a partir de Control classe.

System.Object
  System.Windows.Forms.BindingContext

Namespace:  System.Windows.Forms
Assembly:  System.Windows.Forms (em System.Windows.Forms.dll)
public class BindingContext : ICollection, 
	IEnumerable

O tipo BindingContext expõe os membros a seguir.

  NomeDescrição
Método públicoBindingContextInicializa uma nova instância da classe BindingContext.
Superior
  NomeDescrição
Propriedade públicaIsReadOnlyInfraestrutura. Obtém um valor que indica se a coleção é somente leitura.
Propriedade públicaItem[Object]Obtém o BindingManagerBase está associado à fonte de dados especificada.
Propriedade públicaItem[Object, String]Obtém um BindingManagerBase que está associado com a fonte de dados especificada e o membro de dados.
Superior
  NomeDescrição
Método protegidoAddAdiciona o BindingManagerBase associados a uma fonte de dados específico à coleção.
Método protegidoAddCoreInfraestrutura. Adiciona o BindingManagerBase associados a uma fonte de dados específico à coleção.
Método protegidoClearLimpa a coleção de qualquer BindingManagerBase objetos.
Método protegidoClearCoreInfraestrutura. Limpa a coleção.
Método públicoContains(Object)Obtém um valor indicando se a BindingContext contém o BindingManagerBase associado à fonte de dados especificada.
Método públicoContains(Object, String)Obtém um valor indicando se a BindingContext contém o BindingManagerBase associadas à fonte de dados especificada e membro de dados.
Método públicoEquals(Object) Verifica se o objeto especificado é igual ao objeto atual. (Herdado de Object.)
Método protegidoFinalize Permite que um objeto tente liberar recursos e executar outras operações de limpeza antes que ele seja recuperado pela coleta de lixo. (Herdado de Object.)
Método públicoGetHashCodeServe como uma função hash para um tipo específico. (Herdado de Object.)
Método públicoGetType Obtém o Type da instância atual. (Herdado de Object.)
Método protegidoMemberwiseCloneCria uma cópia superficial do Object atual. (Herdado de Object.)
Método protegidoOnCollectionChangedInfraestrutura. Gera o evento CollectionChanged.
Método protegidoRemoveExclui o BindingManagerBase associado à fonte de dados especificada.
Método protegidoRemoveCoreInfraestrutura. Remove o BindingManagerBase associado à fonte de dados especificada.
Método públicoToStringRetorna uma string que representa o objeto atual. (Herdado de Object.)
Método públicoMembro estáticoUpdateBindingAssocia um Binding com uma nova BindingContext.
Superior
  NomeDescrição
Evento públicoCollectionChangedInfraestrutura. Sempre gera uma NotImplementedException quando manuseadas.
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 particularICollection.CopyToInfraestrutura. Copia os elementos da coleção em uma matriz especificada, iniciando no índice da coleção.
Implementação explícita da interfacePropriedade particularICollection.CountInfraestrutura. Obtém o número total de CurrencyManager objetos gerenciados pela BindingContext.
Implementação explícita da interfacePropriedade particularICollection.IsSynchronizedInfraestrutura. Obtém um valor indicando se a coleção é sincronizada.
Implementação explícita da interfacePropriedade particularICollection.SyncRootInfraestrutura. Obtém um objeto a ser usado para sincronização (segurança do thread).
Implementação explícita da interfaceMétodo particularIEnumerable.GetEnumeratorInfraestrutura. Obtém um enumerador para a coleção.
Superior

Cada Windows Form tenha pelo menos um BindingContext o objeto que gerencia a BindingManagerBase objetos para o formulário. Porque o BindingManagerBase classe é abstrato, o tipo de retorno a Item propriedade é um CurrencyManager ou um PropertyManager. Se a fonte de dados é um objeto que pode retornar apenas uma única propriedade (em vez de uma lista de objetos), o Type é um PropertyManager. Por exemplo, se você especificar um TextBox como fonte de dados, um PropertyManager é retornado. Por outro lado, se a fonte de dados for um objeto que implementa IList ou IBindingList, um CurrencyManager é retornado.

Para cada fonte de dados em um Windows Form, há um único CurrencyManager ou PropertyManager. Porque pode haver várias fontes de dados associados a um Windows Form, o BindingContext permite que você recupere qualquer particular CurrencyManager associados a uma fonte de dados.

ObservaçãoObservação

Ao usar o Item propriedade, o BindingContext cria um novo BindingManagerBase se ainda não existir. Isso pode levar a uma certa confusão, como o objeto retornado não pode gerenciar a lista (ou qualquer lista) que pretendia. Para evitar retornando uma inválido BindingManagerBase, use o Contains método para determinar se o pai pretendido BindingManagerBase já existe.

Se você usar um controle de recipiente, como um GroupBox, Panel, ou TabControl, para conter controles ligados a dados, você pode criar um BindingContext para esse controle de recipiente e seus controles. Em seguida, cada parte do formulário pode ser gerenciado pelo seu próprio BindingManagerBase. Consulte o BindingContext construtor para obter mais informações sobre como criar várias BindingManagerBase objetos para a mesma fonte de dados.

Se você adicionar um TextBox o controle a um formulário e o bind para uma coluna de uma tabela em um dataset, o controle se comunica com o BindingContext desse formulário. O BindingContext, por sua vez, se comunica com o específico do CurrencyManager para essa associação de dados. Se você consultar a Position propriedade do CurrencyManager, ele informaria o registro atual para a ligação de que TextBox controle. No exemplo de código a seguir, um TextBox controle está vinculado a FirstName coluna de um Customers da tabela no dataSet1 dataset através o BindingContext para o formulário está no.

textBox1.DataBindings.Add("Text", dataSet1, "Customers.FirstName");


Você pode adicionar um segundo TextBox controle (TextBox2) para o formulário e vinculá-lo para o LastName coluna da Customers tabela no mesmo dataset. O BindingContext está ciente da primeira vinculação (TextBox1 para Customers.FirstName), de forma que usaria o mesmo CurrencyManager, conforme as duas caixas de texto são vinculadas ao mesmo dataset (DataSet1).

textBox2.DataBindings.Add("Text", dataSet1, "Customers.LastName");


Se você vincular TextBox2 para um conjunto de dados diferente, o BindingContext cria e gerencia um segundo CurrencyManager.

É importante estar consistentes sobre como definir o DataSource e DisplayMember propriedades; Caso contrário, o BindingContext cria moeda vários gerentes para o mesmo conjunto de dados, o que resulta em erros. O exemplo de código a seguir mostra algumas maneiras de definir as propriedades e seus associados BindingContext objetos. Você pode definir as propriedades usando um dos métodos a seguir, contanto que sejam consistentes em todo o código.

comboBox1.DataSource = DataSet1;
comboBox1.DisplayMember = "Customers.FirstName";
this.BindingContext[dataSet1, "Customers"].Position = 1;


comboBox1.DataSource = DataSet1.Customers;
comboBox1.DisplayMember = "FirstName";
this.BindingContext[dataSet1.Customers].Position = 1;


ObservaçãoObservação

A maioria dos aplicativos do Windows Forms ligar através de um BindingSource. O BindingSource componente encapsula um CurrencyManager e expõe a CurrencyManager interface de programação. Ao usar um BindingSource para vinculação, você deve usar os membros expostos pelo BindingSource para manipular "moeda" (ou seja, Position) em vez de percorrer o BindingContext.

O exemplo de código a seguir cria quatro Binding objetos para vincular cinco controles — um DateTimePicker e quatro TextBox controles — a várias fontes de dados. O BindingContext é usado para obter o BindingManagerBase para cada fonte de dados.


   protected void BindControls()
   {
      /* Create two Binding objects for the first two TextBox 
         controls. The data-bound property for both controls 
         is the Text property. The data source is a DataSet 
         (ds). The data member is a navigation path in the form: 
         "TableName.ColumnName". */
      text1.DataBindings.Add(new Binding
      ("Text", ds, "customers.custName"));
      text2.DataBindings.Add(new Binding
      ("Text", ds, "customers.custID"));

      /* Bind the DateTimePicker control by adding a new Binding. 
         The data member of the DateTimePicker is a navigation path:
         TableName.RelationName.ColumnName string. */
      DateTimePicker1.DataBindings.Add(new 
      Binding("Value", ds, "customers.CustToOrders.OrderDate"));

      /* Add event delegates for the Parse and Format events to a 
         new Binding object, and add the object to the third 
         TextBox control's BindingsCollection. The delegates 
         must be added before adding the Binding to the 
         collection; otherwise, no formatting occurs until 
         the Current object of the BindingManagerBase for 
         the data source changes. */
         Binding b = new Binding
         ("Text", ds, "customers.custToOrders.OrderAmount");
      b.Parse+=new ConvertEventHandler(CurrencyStringToDecimal);
      b.Format+=new ConvertEventHandler(DecimalToCurrencyString);
      text3.DataBindings.Add(b);

      // Get the BindingManagerBase for the Customers table. 
      bmCustomers = this.BindingContext [ds, "Customers"];

      /* Get the BindingManagerBase for the Orders table using the 
         RelationName. */ 
      bmOrders = this.BindingContext[ds, "customers.CustToOrders"];

      /* Bind the fourth TextBox control's Text property to the
      third control's Text property. */
      text4.DataBindings.Add("Text", text3, "Text");
   }



.NET Framework

Com suporte em: 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.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.