Para ver el artículo en inglés, active la casilla Inglés. También puede ver el texto en inglés en una ventana emergente si pasa el puntero del mouse por el texto.
Traducción
Inglés
Esta documentación está archivada y no tiene mantenimiento.

BindingContext (Clase)

Administra la colección de objetos BindingManagerBase para cualquier objeto que herede de la clase Control.

System.Object
  System.Windows.Forms.BindingContext

Espacio de nombres:  System.Windows.Forms
Ensamblado:  System.Windows.Forms (en System.Windows.Forms.dll)

public class BindingContext : ICollection, 
	IEnumerable

El tipo BindingContext expone los siguientes miembros.

  NombreDescripción
Método públicoBindingContextInicializa una nueva instancia de la clase BindingContext.
Arriba

  NombreDescripción
Propiedad públicaIsReadOnlyInfraestructura. Obtiene un valor que indica si la colección es de sólo lectura.
Propiedad públicaItem[Object]Obtiene el objeto BindingManagerBase asociado al origen de datos especificado.
Propiedad públicaItem[Object, String]Obtiene un objeto BindingManagerBase asociado al origen de datos y miembro de datos especificados.
Arriba

  NombreDescripción
Método protegidoAddAgrega a la colección el objeto BindingManagerBase asociado a un origen de datos específico.
Método protegidoAddCoreInfraestructura. Agrega a la colección el objeto BindingManagerBase asociado a un origen de datos específico.
Método protegidoClearBorra cualquier objeto BindingManagerBase de la colección.
Método protegidoClearCoreInfraestructura. Borra la colección.
Método públicoContains(Object)Obtiene un valor que indica si BindingContext contiene el objeto BindingManagerBase asociado al origen de datos especificado.
Método públicoContains(Object, String)Obtiene un valor que indica si BindingContext contiene el objeto BindingManagerBase asociado al origen de datos y miembro de datos especificados.
Método públicoEquals(Object)Determina si el objeto Object especificado es igual al objeto Object actual. (Se hereda de Object).
Método protegidoFinalize Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por el recolector de basura. (Se hereda de Object).
Método públicoGetHashCodeActúa como función hash para un tipo concreto. (Se hereda de Object).
Método públicoGetType Obtiene el Type de la instancia actual. (Se hereda de Object).
Método protegidoMemberwiseClone Crea una copia superficial del Object actual. (Se hereda de Object).
Método protegidoOnCollectionChangedInfraestructura. Provoca el evento CollectionChanged.
Método protegidoRemoveElimina el objeto BindingManagerBase asociado al origen de datos especificado.
Método protegidoRemoveCoreInfraestructura. Quita el objeto BindingManagerBase asociado al origen de datos especificado.
Método públicoToString Devuelve una cadena que representa al objeto actual. (Se hereda de Object).
Método públicoMiembro estáticoUpdateBindingAsocia una clase Binding a un nuevo objeto BindingContext.
Arriba

  NombreDescripción
Evento públicoCollectionChangedInfraestructura. Siempre provoca NotImplementedException cuando se controla.
Arriba

  NombreDescripción
Método de extensión públicoAsParallelHabilita la paralelización de una consulta. (Definido por ParallelEnumerable).
Método de extensión públicoAsQueryableConvierte una interfaz IEnumerable en IQueryable. (Definido por Queryable).
Método de extensión públicoCast<TResult>Convierte los elementos de IEnumerable en el tipo especificado. (Definido por Enumerable).
Método de extensión públicoOfType<TResult>Filtra los elementos de IEnumerable en función de un tipo especificado. (Definido por Enumerable).
Arriba

  NombreDescripción
Implementación explícita de interfacesMétodo privadoICollection.CopyToInfraestructura. Copia los elementos de la colección en la matriz especificada, empezando por el índice de la colección.
Implementación explícita de interfacesPropiedad privadaICollection.CountInfraestructura. Obtiene el número total de objetos CurrencyManager de la colección administrados por BindingContext.
Implementación explícita de interfacesPropiedad privadaICollection.IsSynchronizedInfraestructura. Obtiene un valor que indica si la colección está sincronizada.
Implementación explícita de interfacesPropiedad privadaICollection.SyncRootInfraestructura. Obtiene un objeto que se utiliza para la sincronización (seguridad para la ejecución de subprocesos).
Implementación explícita de interfacesMétodo privadoIEnumerable.GetEnumeratorInfraestructura. Obtiene un enumerador para la colección.
Arriba

Cada Windows form tiene al menos un objeto de BindingContext que administra los objetos de BindingManagerBase para el formulario. Puesto que la clase BindingManagerBase es abstracta, el tipo de valor devuelto por la propiedad Item es CurrencyManager o PropertyManager.. Si el origen de datos es un objeto que sólo puede devolver una propiedad (en lugar de una lista de objetos), Type será PropertyManager. Por ejemplo, si especifica TextBox como origen de datos, se devolverá PropertyManager. Por otra parte, si el origen de datos es un objeto que implementa IList o IBindingList, se devolverá CurrencyManager.

Para cada origen de datos de un formulario Windows Forms hay un único CurrencyManager o PropertyManager. Como puede haber varios orígenes de datos asociados a un formulario Windows Forms, BindingContext le permite recuperar cualquier CurrencyManager concreto asociado a un origen de datos.

NotaNota

Cuando se utiliza la propiedad Item, BindingContext crea un nuevo BindingManagerBase si todavía no existe. Esto puede llevar a confusiones, ya que quizás el objeto devuelto no administre la lista que se desea (o cualquier lista). Para impedir que se devuelva un BindingManagerBase no válido, utilice el método Contains para determinar si el BindingManagerBase previsto ya existe.

Si se utiliza un control contenedor, como GroupBox, Panel o TabControl, para incluir controles con enlace a datos, se puede crear un objeto BindingContext sólo para ese control contenedor y sus controles. Después, cada parte de su formulario puede administrarse mediante su propio BindingManagerBase. Vea el constructor BindingContext con el fin de obtener más información acerca de la creación de varios objetos BindingManagerBase para el mismo origen de datos.

Si agrega un control TextBox a un formulario y lo enlaza a una columna de una tabla de un conjunto de datos, el control se comunica con el BindingContext de ese formulario. BindingContext , a su vez, habla con el CurrencyManager específico para esa asociación de datos. Si consultara la propiedad Position del CurrencyManager, informaría del registro actual para el enlace de ese control TextBox. En el ejemplo de código siguiente se enlaza un control TextBox a la columna FirstName de una tabla Customers del conjunto de datos dataSet1 mediante el BindingContext del formulario donde se encuentra.

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


Puede agregar un segundo control TextBox (TextBox2) al formulario y enlazarlo a la columna LastName de la tabla Customers del mismo conjunto de datos. BindingContext conoce el primer enlace (TextBox1 con Customers.FirstName), por lo que usaría el mismo CurrencyManager, ya que ambos cuadros de texto están enlazados al mismo conjunto de datos (DataSet1).

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


Si enlaza TextBox2 a un conjunto de datos diferente, BindingContext crea y administra un segundo CurrencyManager.

Es importante ser coherente en la forma de establecer las propiedades DataSource y DisplayMember; de lo contrario, BindingContext creará varios administradores de moneda para el mismo conjunto de datos, lo que dará lugar a errores. En el ejemplo de código siguiente se muestran algunas maneras de establecer las propiedades y sus objetos BindingContext asociados. Puede establecer las propiedades utilizando cualquiera de los métodos siguientes, siempre y cuando sea coherente en todo el 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;


NotaNota

La mayoría de las aplicaciones de Windows Forms se enlazan mediante un BindingSource. El componente BindingSource encapsula un CurrencyManager y expone la interfaz de programación CurrencyManager. Cuando se utiliza un BindingSource para el enlace, debe utilizar los miembros expuestos por BindingSource para manipular "moneda" (es decir, Position) en lugar de mediante BindingContext.

En el ejemplo de código siguiente se crean cuatro objetos Binding para enlazar cinco controles (un control DateTimePicker y cuatro controles TextBox) a varios orígenes de datos. A continuación, se utiliza BindingContext con el fin de obtener el objeto BindingManagerBase para cada origen de datos.


   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

Compatible con: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Windows 7, Windows Vista SP1 o posterior, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (no se admite Server Core), Windows Server 2008 R2 (se admite Server Core con SP1 o posterior), Windows Server 2003 SP2

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.
Mostrar: