Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Clase BindingContext

 

Publicado: octubre de 2016

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

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

System.Object
  System.Windows.Forms.BindingContext

public class BindingContext : ICollection, IEnumerable

NombreDescripción
System_CAPS_pubmethodBindingContext()

Inicializa una nueva instancia de la clase BindingContext.

NombreDescripción
System_CAPS_pubpropertyIsReadOnly

Esta API admite la infraestructura producto y no está diseñada para usarse directamente desde el código. Obtiene un valor que indica si la colección es de solo lectura.

System_CAPS_pubpropertyItem[Object]

Obtiene el BindingManagerBase que está asociado con el origen de datos especificado.

System_CAPS_pubpropertyItem[Object, String]

Obtiene un BindingManagerBase que está asociado con el origen de datos especificado y el miembro de datos.

NombreDescripción
System_CAPS_protmethodAdd(Object, BindingManagerBase)

Agrega el BindingManagerBase asociado a un origen de datos específico a la colección.

System_CAPS_protmethodAddCore(Object, BindingManagerBase)

Esta API admite la infraestructura producto y no está diseñada para usarse directamente desde el código. Agrega el BindingManagerBase asociado a un origen de datos específico a la colección.

System_CAPS_protmethodClear()

Borra la colección de cualquier BindingManagerBase objetos.

System_CAPS_protmethodClearCore()

Esta API admite la infraestructura producto y no está diseñada para usarse directamente desde el código. Borra la colección.

System_CAPS_pubmethodContains(Object)

Obtiene un valor que indica si el BindingContext contiene el BindingManagerBase asociado con el origen de datos especificado.

System_CAPS_pubmethodContains(Object, String)

Obtiene un valor que indica si el BindingContext contiene el BindingManagerBase asociado al origen de datos especificado y el miembro de datos.

System_CAPS_pubmethodEquals(Object)

Determina si el objeto especificado es igual al objeto actual.(Heredado de Object).

System_CAPS_protmethodFinalize()

Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por el recolector de basura. (Heredado de Object).

System_CAPS_pubmethodGetHashCode()

Sirve como la función hash predeterminada.(Heredado de Object).

System_CAPS_pubmethodGetType()

Obtiene el Type de la instancia actual.(Heredado de Object).

System_CAPS_protmethodMemberwiseClone()

Crea una copia superficial del Object actual.(Heredado de Object).

System_CAPS_protmethodOnCollectionChanged(CollectionChangeEventArgs)

Esta API admite la infraestructura producto y no está diseñada para usarse directamente desde el código. Genera el evento CollectionChanged.

System_CAPS_protmethodRemove(Object)

Elimina el BindingManagerBase asociado con el origen de datos especificado.

System_CAPS_protmethodRemoveCore(Object)

Esta API admite la infraestructura producto y no está diseñada para usarse directamente desde el código. Quita el BindingManagerBase asociado con el origen de datos especificado.

System_CAPS_pubmethodToString()

Devuelve una cadena que representa al objeto actual. (Heredado de Object).

System_CAPS_pubmethodSystem_CAPS_staticUpdateBinding(BindingContext, Binding)

Asocia un Binding a un nuevo BindingContext.

NombreDescripción
System_CAPS_pubeventCollectionChanged

Esta API admite la infraestructura producto y no está diseñada para usarse directamente desde el código. Siempre genera un NotImplementedException Cuando controla.

NombreDescripción
System_CAPS_pubinterfaceSystem_CAPS_privmethodICollection.CopyTo(Array, Int32)

Esta API admite la infraestructura producto y no está diseñada para usarse directamente desde el código. Copia los elementos de la colección en la matriz especificada, empezando por el índice de la colección.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIEnumerable.GetEnumerator()

Esta API admite la infraestructura producto y no está diseñada para usarse directamente desde el código. Obtiene un enumerador para la colección.

System_CAPS_pubinterfaceSystem_CAPS_privpropertyICollection.Count

Esta API admite la infraestructura producto y no está diseñada para usarse directamente desde el código. Obtiene el número total de CurrencyManager objetos administrados por la BindingContext.

System_CAPS_pubinterfaceSystem_CAPS_privpropertyICollection.IsSynchronized

Esta API admite la infraestructura producto y no está diseñada para usarse directamente desde el código. Obtiene un valor que indica si la colección está sincronizada.

System_CAPS_pubinterfaceSystem_CAPS_privpropertyICollection.SyncRoot

Esta API admite la infraestructura producto y no está diseñada para usarse directamente desde el código. Obtiene un objeto que se utiliza para la sincronización (seguridad para la ejecución de subprocesos).

NombreDescripción
System_CAPS_pubmethodAsParallel()

Sobrecargado. Habilita la paralelización de una consulta.(Definido por ParallelEnumerable).

System_CAPS_pubmethodAsQueryable()

Sobrecargado. Convierte un IEnumerable para un IQueryable.(Definido por Queryable).

System_CAPS_pubmethodCast<TResult>()

Convierte los elementos de un IEnumerable al tipo especificado.(Definido por Enumerable).

System_CAPS_pubmethodOfType<TResult>()

Filtra los elementos de un IEnumerable basado en un tipo especificado.(Definido por Enumerable).

Each Windows Form has at least one T:System.Windows.Forms.BindingContext object that manages the T:System.Windows.Forms.BindingManagerBase objects for the form. Because the T:System.Windows.Forms.BindingManagerBase class is abstract, the return type of the P:System.Windows.Forms.BindingContext.Item(System.Object) property is either a T:System.Windows.Forms.CurrencyManager or a T:System.Windows.Forms.PropertyManager. If the data source is an object that can return only a single property (instead of a list of objects), the T:System.Type is a T:System.Windows.Forms.PropertyManager. For example, if you specify a T:System.Windows.Forms.TextBox as the data source, a T:System.Windows.Forms.PropertyManager is returned. On the other hand, if the data source is an object that implements T:System.Collections.IList or T:System.ComponentModel.IBindingList, a T:System.Windows.Forms.CurrencyManager is returned.

For each data source on a Windows Form, there is a single T:System.Windows.Forms.CurrencyManager or T:System.Windows.Forms.PropertyManager. Because there may be multiple data sources associated with a Windows Form, the T:System.Windows.Forms.BindingContext enables you to retrieve any particular T:System.Windows.Forms.CurrencyManager associated with a data source.

System_CAPS_noteNota

When using the P:System.Windows.Forms.BindingContext.Item(System.Object) property, the T:System.Windows.Forms.BindingContext creates a new T:System.Windows.Forms.BindingManagerBase if one does not already exist. This can lead to some confusion, as the returned object may not manage the list (or any list) that you intend. To prevent returning an invalid T:System.Windows.Forms.BindingManagerBase, use the M:System.Windows.Forms.BindingContext.Contains(System.Object) method to determine if the intended T:System.Windows.Forms.BindingManagerBase already exists.

If you use a container control, such as a T:System.Windows.Forms.GroupBox, T:System.Windows.Forms.Panel, or T:System.Windows.Forms.TabControl, to contain data-bound controls, you can create a T:System.Windows.Forms.BindingContext for just that container control and its controls. Then, each part of your form can be managed by its own T:System.Windows.Forms.BindingManagerBase. See the M:System.Windows.Forms.BindingContext.#ctor constructor for more information about creating multiple T:System.Windows.Forms.BindingManagerBase objects for the same data source.

If you add a T:System.Windows.Forms.TextBox control to a form and bind it to a column of a table in a dataset, the control communicates with the T:System.Windows.Forms.BindingContext of that form. The T:System.Windows.Forms.BindingContext, in turn, talks to the specific T:System.Windows.Forms.CurrencyManager for that data association. If you queried the Position property of the T:System.Windows.Forms.CurrencyManager, it would report the current record for the binding of that T:System.Windows.Forms.TextBox control. In the following code example, a T:System.Windows.Forms.TextBox control is bound to the FirstName column of a Customers table on the dataSet1 dataset through the T:System.Windows.Forms.BindingContext for the form it is on.

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


You can add a second T:System.Windows.Forms.TextBox control (TextBox2) to the form and bind it to the LastName column of the Customers table in the same dataset. The T:System.Windows.Forms.BindingContext is aware of the first binding (TextBox1 to Customers.FirstName), so it would use the same T:System.Windows.Forms.CurrencyManager, as both text boxes are bound to the same dataset (DataSet1).

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


If you bind TextBox2 to a different dataset, the T:System.Windows.Forms.BindingContext creates and manages a second T:System.Windows.Forms.CurrencyManager.

It is important to be consistent about how you set the P:System.Windows.Forms.ListControl.DataSource and P:System.Windows.Forms.ListControl.DisplayMember properties; otherwise, the T:System.Windows.Forms.BindingContext creates multiple currency managers for the same dataset, which results in errors. The following code example shows a few ways to set the properties and their associated T:System.Windows.Forms.BindingContext objects. You can set the properties using either of the following methods, as long as you are consistent throughout your code.

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;


System_CAPS_noteNota

Most Windows Forms applications bind through a T:System.Windows.Forms.BindingSource. The T:System.Windows.Forms.BindingSource component encapsulates a T:System.Windows.Forms.CurrencyManager and exposes the T:System.Windows.Forms.CurrencyManager programming interface. When using a T:System.Windows.Forms.BindingSource for binding, you should use the members exposed by the T:System.Windows.Forms.BindingSource to manipulate "currency" (that is, Position) rather than go through the T:System.Windows.Forms.BindingContext.

The following code example creates four T:System.Windows.Forms.Binding objects to bind five controls—a T:System.Windows.Forms.DateTimePicker and four T:System.Windows.Forms.TextBox controls—to several data sources. The T:System.Windows.Forms.BindingContext is then used to get the T:System.Windows.Forms.BindingManagerBase for each data source.

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
Disponible desde 1.1

Cualquier miembro ( Compartido en Visual Basic) estático público de este tipo es seguro para subprocesos. No se garantiza que los miembros de instancia sean seguros para subprocesos.

Volver al principio
Mostrar: