BindingManagerBase Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Administra todos los objetos Binding enlazados al mismo origen y miembro de datos. Esta clase es abstracta.
public ref class BindingManagerBase abstract
public abstract class BindingManagerBase
type BindingManagerBase = class
Public MustInherit Class BindingManagerBase
- Herencia
-
BindingManagerBase
- Derivado
Ejemplos
En el ejemplo de código siguiente se usa para BindingContext devolver un BindingManagerBase para un origen de datos específico. (En el ejemplo se supone que ha declarado myBindingManagerBase
en la sección Declaraciones del módulo). A continuación, en el ejemplo se agregan delegados de eventos a los CurrentChanged eventos y PositionChanged . Por último, el ejemplo contiene cuatro métodos (, , y MoveLast
) que incrementan o disminuyen la Position propiedad y establecen en Position la primera o última fila de la MoveFirst
lista. MovePrevious
MoveNext
La última fila de la lista se determina mediante la Count propiedad .
void GetBindingManagerBase()
{
/* CustomersToOrders is the RelationName of a DataRelation.
Therefore, the list maintained by the BindingManagerBase is the
list of orders that belong to a specific customer in the
DataTable named Customers, found in DataSet1. */
myBindingManagerBase = this->BindingContext[DataSet1, "Customers.CustomersToOrders"];
// Adds delegates to the CurrentChanged and PositionChanged events.
myBindingManagerBase->PositionChanged += gcnew EventHandler( this, &Form1::BindingManagerBase_PositionChanged );
myBindingManagerBase->CurrentChanged += gcnew EventHandler( this, &Form1::BindingManagerBase_CurrentChanged );
}
void BindingManagerBase_PositionChanged( Object^ sender, EventArgs^ /*e*/ )
{
// Prints the new Position of the BindingManagerBase.
Console::Write( "Position Changed: " );
Console::WriteLine( (dynamic_cast<BindingManagerBase^>(sender))->Position );
}
void BindingManagerBase_CurrentChanged( Object^ sender, EventArgs^ /*e*/ )
{
// Prints the new value of the current object.
Console::Write( "Current Changed: " );
Console::WriteLine( (dynamic_cast<BindingManagerBase^>(sender))->Current );
}
void MoveNext()
{
// Increments the Position property value by one.
myBindingManagerBase->Position = myBindingManagerBase->Position + 1;
}
void MovePrevious()
{
// Decrements the Position property value by one.
myBindingManagerBase->Position = myBindingManagerBase->Position - 1;
}
void MoveFirst()
{
// Goes to the first row in the list.
myBindingManagerBase->Position = 0;
}
void MoveLast()
{
// Goes to the last row in the list.
myBindingManagerBase->Position = myBindingManagerBase->Count - 1;
}
private void GetBindingManagerBase()
{
/* CustomersToOrders is the RelationName of a DataRelation.
Therefore, the list maintained by the BindingManagerBase is the
list of orders that belong to a specific customer in the
DataTable named Customers, found in DataSet1. */
myBindingManagerBase =
this.BindingContext[DataSet1, "Customers.CustomersToOrders"];
// Adds delegates to the CurrentChanged and PositionChanged events.
myBindingManagerBase.PositionChanged +=
new EventHandler(BindingManagerBase_PositionChanged);
myBindingManagerBase.CurrentChanged +=
new EventHandler(BindingManagerBase_CurrentChanged);
}
private void BindingManagerBase_PositionChanged
(object sender, EventArgs e)
{
// Prints the new Position of the BindingManagerBase.
Console.Write("Position Changed: ");
Console.WriteLine(((BindingManagerBase)sender).Position);
}
private void BindingManagerBase_CurrentChanged
(object sender, EventArgs e)
{
// Prints the new value of the current object.
Console.Write("Current Changed: ");
Console.WriteLine(((BindingManagerBase)sender).Current);
}
private void MoveNext()
{
// Increments the Position property value by one.
myBindingManagerBase.Position += 1;
}
private void MovePrevious()
{
// Decrements the Position property value by one.
myBindingManagerBase.Position -= 1;
}
private void MoveFirst()
{
// Goes to the first row in the list.
myBindingManagerBase.Position = 0;
}
private void MoveLast()
{
// Goes to the last row in the list.
myBindingManagerBase.Position =
myBindingManagerBase.Count - 1;
}
Private Sub GetBindingManagerBase
' CustomersToOrders is the RelationName of a DataRelation.
' Therefore, the list maintained by the BindingManagerBase is the
' list of orders that belong to a specific customer in the
' DataTable named Customers, found in DataSet.
myBindingManagerBase = Me.BindingContext(DataSet1, _
"Customers.CustomersToOrders")
' Adds delegates to the CurrentChanged and PositionChanged events.
AddHandler myBindingManagerBase.PositionChanged, _
AddressOf BindingManagerBase_PositionChanged
AddHandler myBindingManagerBase.CurrentChanged, _
AddressOf BindingManagerBase_CurrentChanged
End Sub
Private Sub BindingManagerBase_PositionChanged _
(sender As Object, e As EventArgs)
' Prints the new Position of the BindingManagerBase.
Console.Write("Position Changed: ")
Console.WriteLine(CType(sender, BindingManagerBase).Position)
End Sub
Private Sub BindingManagerBase_CurrentChanged _
(sender As Object, e As EventArgs)
' Prints the new value of the current object.
Console.Write("Current Changed: ")
Console.WriteLine(CType(sender, BindingManagerBase).Current)
End Sub
Private Sub MoveNext
' Increments the Position property value by one.
myBindingManagerBase.Position += 1
End Sub
Private Sub MovePrevious
' Decrements the Position property value by one.
myBindingManagerBase.Position -= 1
End Sub
Private Sub MoveFirst
' Goes to the first row in the list.
myBindingManagerBase.Position = 0
End Sub
Private Sub MoveLast
' Goes to the last row in the list.
myBindingManagerBase.Position = _
myBindingManagerBase.Count - 1
End Sub
Comentarios
BindingManagerBase habilita la sincronización de controles enlazados a datos en un formulario Windows Forms enlazado al mismo origen de datos. (Para obtener más información sobre el enlace sencillo de un control a un origen de datos, vea la Binding clase ). Por ejemplo, supongamos que un formulario contiene dos TextBox controles enlazados al mismo origen de datos, pero a columnas diferentes. El origen de datos puede ser un DataTable que contiene nombres de cliente, mientras que las columnas pueden contener los nombres y apellidos. Los dos controles deben sincronizarse para mostrar los nombres y los apellidos correctos para el mismo cliente. , CurrencyManagerque hereda de la BindingManagerBase clase , realiza esta sincronización manteniendo un puntero al elemento actual del origen de datos. Los TextBox controles se enlazan al elemento actual para que muestren la información de la misma fila. Cuando cambia el elemento actual, CurrencyManager notifica a todos los controles enlazados para que puedan actualizar sus datos. Además, puede establecer la Position propiedad para especificar la fila en la DataTable que apuntan los controles. Para determinar cuántas filas existen en el origen de datos, use la Count propiedad .
CurrencyManager es necesario porque los orígenes de datos no mantienen necesariamente un puntero de elemento actual. Por ejemplo, las matrices y ArrayList los objetos pueden ser orígenes de datos, pero no tienen una propiedad que devuelva el elemento actual. Para obtener el elemento actual, use la Current propiedad .
PropertyManager También hereda de BindingManagerBase, y se usa para mantener la propiedad actual de un objeto, en lugar de la propiedad de un objeto actual en un origen de datos. Por este motivo, intentar establecer la Position propiedad o Count para un objeto PropertyManager no tiene ningún efecto.
Para crear un BindingManagerBase, use la BindingContext clase , que devuelve o CurrencyManager , PropertyManageren función del origen de datos que se administre.
Se recomienda a los programadores de soluciones enlazar controles directamente a un BindingSource componente, que actúa como un origen de datos y un conector de datos al origen de datos de destino real. BindingSource simplifica considerablemente el enlace de datos simple y complejo, incluida la administración de monedas entre el control y su destino.
Notas a los implementadores
Cuando hereda de BindingManagerBase, debe invalidar los siguientes miembros abstractos: AddNew(), Count, CancelCurrentEdit(), Current, GetItemProperties()RemoveAt(Int32)EndCurrentEdit()PositionResumeBinding()OnCurrentChanged(EventArgs), SuspendBinding()y .UpdateIsBinding()
Constructores
BindingManagerBase() |
Inicializa una nueva instancia de la clase BindingManagerBase. |
Campos
onCurrentChangedHandler |
Especifica el controlador de eventos para el evento CurrentChanged. |
onPositionChangedHandler |
Especifica el controlador de eventos para el evento PositionChanged. |
Propiedades
Bindings |
Obtiene la colección de enlaces que se administra. |
Count |
Si se reemplaza en una clase derivada, obtiene el número de filas administradas por la clase BindingManagerBase. |
Current |
Cuando se reemplaza en una clase derivada, se obtiene el objeto actual. |
IsBindingSuspended |
Obtiene un valor que indica si el enlace se ha suspendido. |
Position |
Cuando se reemplaza en una clase derivada, se obtiene o establece la posición de la lista subyacente a la que señalan los controles enlazados a este origen de datos. |
Métodos
AddNew() |
Cuando se reemplaza en una clase derivada, se agrega un nuevo elemento a la lista subyacente. |
CancelCurrentEdit() |
Cuando se reemplaza en una clase derivada, se cancela la edición actual. |
EndCurrentEdit() |
Cuando se reemplaza en una clase derivada, finaliza la edición actual. |
Equals(Object) |
Determina si el objeto especificado es igual que el objeto actual. (Heredado de Object) |
GetHashCode() |
Sirve como la función hash predeterminada. (Heredado de Object) |
GetItemProperties() |
Cuando se reemplaza en una clase derivada, se obtiene la colección de descriptores de propiedades para el enlace. |
GetItemProperties(ArrayList, ArrayList) |
Obtiene la colección de descriptores de propiedades para el enlace con el objeto ArrayList especificado. |
GetItemProperties(Type, Int32, ArrayList, ArrayList) |
Obtiene la lista de propiedades de los elementos administrados por BindingManagerBase. |
GetListName(ArrayList) |
Cuando se reemplaza en una clase derivada, se obtiene el nombre de la lista que suministra los datos para el enlace. |
GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
MemberwiseClone() |
Crea una copia superficial del Object actual. (Heredado de Object) |
OnBindingComplete(BindingCompleteEventArgs) |
Genera el evento BindingComplete. |
OnCurrentChanged(EventArgs) |
Genera el evento CurrentChanged. |
OnCurrentItemChanged(EventArgs) |
Genera el evento CurrentItemChanged. |
OnDataError(Exception) |
Genera el evento DataError. |
PullData() |
Extrae datos del control con enlace a datos y los aplica al origen de datos, y no devuelve ninguna información. |
PushData() |
Extrae datos del origen de datos en el control con enlace a datos, y no devuelve ninguna información. |
RemoveAt(Int32) |
Cuando se reemplaza en una clase derivada, se elimina la fila en el índice especificado de la lista subyacente. |
ResumeBinding() |
Cuando se reemplaza en una clase derivada, se reanuda el enlace de datos. |
SuspendBinding() |
Cuando se reemplaza en una clase derivada, se suspende el enlace de datos. |
ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |
UpdateIsBinding() |
Cuando se reemplaza en una clase derivada, se actualiza el enlace. |
Eventos
BindingComplete |
Se produce cuando finaliza una operación de enlace de datos. |
CurrentChanged |
Se produce cuando cambia el elemento enlazado actualmente. |
CurrentItemChanged |
Se produce cuando el estado del elemento enlazado actualmente cambia. |
DataError |
Se produce cuando Exception controla silenciosamente BindingManagerBase. |
PositionChanged |
Se produce después de haber cambiado el valor de la propiedad Position. |