Este artigo foi traduzido por máquina. Para visualizar o arquivo em inglês, marque a caixa de seleção Inglês. Você também pode exibir o texto Em inglês em uma janela pop-up, movendo o ponteiro do mouse sobre o texto.
Tradução
Inglês
Esta documentação foi arquivada e não está sendo atualizada.

Classe BindingContext

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

Namespace:  System.Windows.Forms
Assembly:  System.Windows.Forms (em System.Windows.Forms.dll)

public class BindingContext : ICollection, 
	IEnumerable

Cada Windows Form tem pelo menos um BindingContext objeto que gerencia o BindingManagerBase objetos do formulário. Porque o BindingManagerBase classe é abstrato, o tipo de retorno a Item propriedade é uma 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), a Type é um PropertyManager. Por exemplo, se você especificar um TextBox sistema autônomo a fonte de dados, um PropertyManager será retornado. Por Outros lado, se a fonte de dados for um objeto que implementa IList ou IBindingList, um CurrencyManager será retornado.

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

ObservaçãoObservação:

Ao usar o Item propriedade, o BindingContext cria um novo BindingManagerBase Se um já não existir. Isso pode levar a alguma confusão, pois o objeto retornado não pode gerenciar a lista (ou qualquer lista) que você pretendia.Para evitar retornando um inválidoBindingManagerBase, use o Contains método para determinar se o pretendido BindingManagerBase já existe.

Se você usar um controle de contêiner, sistema autônomo um GroupBox, Panel, ou TabControl, para conter sistema autônomo controles ligados a dados, você pode criar um BindingContext para esse controle de contêiner e seus controles. Em seguida, cada parte do formulário pode ser gerenciado por sua própria BindingManagerBase. Consulte o BindingContext construtor para obter mais informações sobre como criar vários BindingManagerBase objetos para a mesma fonte de dados.

Se você adicionar um TextBox controle a um formulário e BIND para uma coluna de uma tabela em um dataset, o controle se comunica com o BindingContext desse formulário. The BindingContext, por sua vez, fala com a específica CurrencyManager Essa associação de dados. Se você o Position propriedade das CurrencyManager, ele informaria o registro corrente para a ligação do que TextBox controle. No exemplo de código a seguir, um TextBox controle está limite a FirstName coluna de uma Customers tabela na dataSet1 conjunto de dados por meio do BindingContext para o formulário está no.

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


Você pode adicionar um segundo TextBox controlar)TextBox2) ao formulário e vinculá-lo para o LastName coluna das Customers tabela no mesmo dataset. The BindingContext está ciente de que o primeiro (ligaçãoTextBox1 para Customers.FirstName), para que ele poderia usar o mesmo CurrencyManager, pois ambas sistema autônomo caixas de texto são limite para o mesmo (conjunto de dadosDataSet1).

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


Se você BIND 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 vários moeda gerentes para o mesmo conjunto de dados, o que resultados em erros. O exemplo de código a seguir mostra algumas maneiras de conjunto as propriedades e seus associados BindingContext objetos. Você pode conjunto sistema autônomo propriedades usando um dos seguintes métodos, desde 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 Windows Forms BIND através de um BindingSource.The BindingSource componente encapsula um CurrencyManager e expõe o CurrencyManager interface de programação. Ao usar um BindingSource para que a vinculação, você deve usar membros expostos pela BindingSourcepara manipular "Moeda" (ou seja, Position) em vez de percorrer o BindingContext.

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

protectedvoid 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");
}



System.Object
  System.Windows.Forms.BindingContext

Quaisquer membros static (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.

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC

o.NET Framework e.NET Compact Framework não oferecem suporte a todas as versões de cada plataforma. Para obter uma lista de versões suportadas, consulte Requisitos de sistema do .NET framework.

.NET Framework

Compatível com: 3.5, 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Compatível com: 3.5, 2.0, 1.0
Mostrar: