Partilhar via


BindingManagerBase Classe

Definição

Gerencia todos os objetos Binding associados à mesma fonte de dados e ao mesmo membro de dados. Esta classe é abstrata.

public ref class BindingManagerBase abstract
public abstract class BindingManagerBase
type BindingManagerBase = class
Public MustInherit Class BindingManagerBase
Herança
BindingManagerBase
Derivado

Exemplos

O exemplo de código a seguir usa o BindingContext para retornar um BindingManagerBase para uma fonte de dados específica. (O exemplo pressupõe que você declarou myBindingManagerBase na seção Declarações do módulo.) Em seguida, o exemplo adiciona delegados de eventos aos CurrentChanged eventos e PositionChanged . Por fim, o exemplo contém quatro métodos (, , e MoveLast) que incrementam ou decrementam a Position propriedade e definem como Position a primeira ou a última linha da MoveFirstlista. MovePreviousMoveNext A última linha na lista é determinada usando a Count propriedade .

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

Comentários

O BindingManagerBase permite a sincronização de controles associados a dados em um Formulário do Windows associado à mesma fonte de dados. (Para obter mais informações sobre a associação simples de um controle a uma fonte de dados, consulte a Binding classe .) Por exemplo, suponha que um formulário contenha dois TextBox controles associados à mesma fonte de dados, mas a colunas diferentes. A fonte de dados pode ser um DataTable que contém nomes de clientes, enquanto as colunas podem conter os nomes e sobrenomes. Os dois controles devem ser sincronizados para exibir os nomes e sobrenomes corretos juntos para o mesmo cliente. O CurrencyManager, que herda da BindingManagerBase classe , realiza essa sincronização mantendo um ponteiro para o item atual na fonte de dados. Os TextBox controles são associados ao item atual para que eles exibam as informações da mesma linha. Quando o item atual é alterado, o CurrencyManager notifica todos os controles associados para que eles possam atualizar seus dados. Além disso, você pode definir a Position propriedade para especificar a linha na DataTable qual os controles apontam. Para determinar quantas linhas existem na fonte de dados, use a Count propriedade .

O CurrencyManager é necessário porque as fontes de dados não necessariamente mantêm um ponteiro de item atual. Por exemplo, matrizes e ArrayList objetos podem ser fontes de dados, mas não têm uma propriedade que retorna o item atual. Para obter o item atual, use a Current propriedade .

O PropertyManager também herda do BindingManagerBasee é usado para manter a propriedade atual de um objeto, em vez da propriedade de um objeto atual em uma fonte de dados. Por esse motivo, tentar definir a Position propriedade ou Count para um PropertyManager não tem efeito.

Para criar um BindingManagerBase, use a BindingContext classe , que retorna um CurrencyManager ou um PropertyManager, dependendo da fonte de dados que está sendo gerenciada.

Os programadores de soluções são incentivados a associar controles diretamente a um BindingSource componente, que atua como uma fonte de dados e um conector de dados à fonte de dados de destino real. BindingSource simplifica muito a associação de dados simples e complexa, incluindo o gerenciamento de moeda entre o controle e seu destino.

Notas aos Implementadores

Ao herdar de BindingManagerBase, você deve substituir os seguintes membros abstratos: AddNew(), Count, CancelCurrentEdit(), Current, , EndCurrentEdit(), OnCurrentChanged(EventArgs)GetItemProperties(), , RemoveAt(Int32)Position, ResumeBinding(), SuspendBinding()e UpdateIsBinding().

Construtores

BindingManagerBase()

Inicializa uma nova instância da classe BindingManagerBase.

Campos

onCurrentChangedHandler

Especifica o manipulador de eventos para o evento CurrentChanged.

onPositionChangedHandler

Especifica o manipulador de eventos para o evento PositionChanged.

Propriedades

Bindings

Obtém a coleção de associações sendo gerenciadas.

Count

Quando substituído em uma classe derivada, obtém o número de linhas gerenciadas pelo BindingManagerBase.

Current

Quando substituído em uma classe derivada, obtém o objeto atual.

IsBindingSuspended

Obtém um valor que indica se a associação está suspensa.

Position

Quando substituído em uma classe derivada, obtém ou define a posição na lista subjacente para a qual os controles associados a essa fonte de dados apontam.

Métodos

AddNew()

Quando substituído em uma classe derivada, adiciona um novo item à lista subjacente.

CancelCurrentEdit()

Quando substituída em uma classe derivada, cancela a edição atual.

EndCurrentEdit()

Ao ser substituído em uma classe derivada, finaliza a edição atual.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetItemProperties()

Quando substituído em uma classe derivada, obtém a coleção de descritores de propriedade para a associação.

GetItemProperties(ArrayList, ArrayList)

Obtém a coleção de descritores de propriedade para a associação usando o ArrayList especificado.

GetItemProperties(Type, Int32, ArrayList, ArrayList)

Obtém a lista de propriedades dos itens gerenciados por este BindingManagerBase.

GetListName(ArrayList)

Quando substituído em uma classe derivada, obtém o nome da lista fornecendo os dados para a associação.

GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
OnBindingComplete(BindingCompleteEventArgs)

Aciona o evento BindingComplete.

OnCurrentChanged(EventArgs)

Aciona o evento CurrentChanged.

OnCurrentItemChanged(EventArgs)

Aciona o evento CurrentItemChanged.

OnDataError(Exception)

Aciona o evento DataError.

PullData()

Efetua o pull de dados do controle associado a dados para a fonte de dados, não retornando nenhuma informação.

PushData()

Efetua o push de dados da fonte de dados para o controle associado a dados, não retornando nenhuma informação.

RemoveAt(Int32)

Quando substituída em uma classe derivada, exclui a linha no índice especificado da lista subjacente.

ResumeBinding()

Quando substituído em uma classe derivada, retoma a vinculação de dados.

SuspendBinding()

Quando substituído em uma classe derivada, suspende a vinculação de dados.

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)
UpdateIsBinding()

Quando substituído em uma classe derivada, atualiza a associação.

Eventos

BindingComplete

Ocorre após a conclusão de uma operação de associação de dados.

CurrentChanged

Ocorre quando o item associado no momento é alterado.

CurrentItemChanged

Ocorre quando o estado do item associado no momento é alterado.

DataError

Ocorre quando uma Exception é manipulada silenciosamente pelo BindingManagerBase.

PositionChanged

Ocorre depois que o valor da propriedade Position é alterado.

Aplica-se a

Confira também