BindingManagerBase Classe

Definição

Gerir todos os Binding objetos que estão ligados à mesma fonte de dados e membro de dados. Esta aula é abstrata.

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

Exemplos

O seguinte exemplo de código usa o BindingContext para devolver a BindingManagerBase para uma fonte de dados específica. (O exemplo assume que declaraste myBindingManagerBase na secção Declarações do módulo.) O exemplo adiciona então os delegados do evento aos CurrentChanged eventos e PositionChanged . Por fim, o exemplo contém quatro métodos (MoveNext, MovePrevious, MoveFirst, e MoveLast) que incrementam ou decrementam a Position propriedade, e definem o Position para a primeira ou última linha da lista. A última linha da 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

Observações

O BindingManagerBase permite a sincronização dos controlos ligados a dados num formulário Windows que estão ligados à mesma fonte de dados. (Para mais informações sobre como ligar um controlo simples a uma fonte de dados, veja a Binding classe.) Por exemplo, suponha que um formulário contém dois TextBox controlos que estão ligados à 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 primeiros e apelidos. Os dois controlos devem estar sincronizados para mostrar os nomes próprios e apelidos corretos juntos para o mesmo cliente. O CurrencyManager, que herda da BindingManagerBase classe, realiza esta sincronização mantendo um ponteiro para o item atual na fonte de dados. Os TextBox controlos estão ligados ao item atual para que mostrem a informação da mesma linha. Quando o item atual muda, notifica CurrencyManager todos os controlos vinculados para que possam atualizar os seus dados. Além disso, podes definir a Position propriedade para especificar a linha em o DataTable para onde os controlos apontam. Para determinar quantas linhas existem na fonte de dados, use a Count propriedade.

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

O PropertyManager também herda do BindingManagerBase, e é usado para manter a propriedade corrente de um objeto, em vez da propriedade de um objeto atual numa fonte de dados. Por esta razão, tentar definir a Position propriedade ou Count para um PropertyManager não tem efeito.

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

Os programadores de soluções são incentivados a vincular os controlos diretamente a um BindingSource componente, que atua tanto como fonte de dados como conector de dados à fonte de dados alvo real. BindingSource simplifica muito tanto a ligação de dados simples como a complexa, incluindo a gestão da moeda entre o controlo e o seu alvo.

Notas para Implementadores

Quando herdas de BindingManagerBase, deves sobrescrever os seguintes membros abstratos: AddNew(), Count, CancelCurrentEdit(), Current, GetItemProperties()EndCurrentEdit(), , OnCurrentChanged(EventArgs), Position, RemoveAt(Int32)ResumeBinding(), SuspendBinding()UpdateIsBinding()e .

Construtores

Name Description
BindingManagerBase()

Inicializa uma nova instância da BindingManagerBase classe.

Campos

Name Description
onCurrentChangedHandler

Especifica o gestor de eventos para o CurrentChanged evento.

onPositionChangedHandler

Especifica o gestor de eventos para o PositionChanged evento.

Propriedades

Name Description
Bindings

Faz com que a coleção de encadernações seja gerida.

Count

Quando sobreposto numa classe derivada, obtém o número de linhas geridas pelo BindingManagerBase.

Current

Quando sobreposto numa classe derivada, obtém o objeto atual.

IsBindingSuspended

Recebe um valor que indica se a ligação está suspensa.

Position

Quando sobrescrito numa classe derivada, obtém ou define a posição na lista subjacente que os controlos estão ligados a este ponto fonte de dados para.

Métodos

Name Description
AddNew()

Quando sobreposto numa classe derivada, adiciona um novo item à lista subjacente.

CancelCurrentEdit()

Quando sobrescrito numa classe derivada, cancela a edição atual.

EndCurrentEdit()

Quando sobrescrito numa classe derivada, termina a edição atual.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetItemProperties()

Quando sobrescrito numa classe derivada, obtém a coleção de descritores de propriedade para a ligação.

GetItemProperties(ArrayList, ArrayList)

Obtém a coleção de descritores de propriedades para a ligação usando o especificado ArrayList.

GetItemProperties(Type, Int32, ArrayList, ArrayList)

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

GetListName(ArrayList)

Quando é sobreposto numa classe derivada, obtém o nome da lista que fornece os dados para a ligação.

GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
OnBindingComplete(BindingCompleteEventArgs)

Eleva o BindingComplete evento.

OnCurrentChanged(EventArgs)

Eleva o CurrentChanged evento.

OnCurrentItemChanged(EventArgs)

Eleva o CurrentItemChanged evento.

OnDataError(Exception)

Eleva o DataError evento.

PullData()

Puxa dados do controlo vinculado aos dados para a fonte de dados, não retornando qualquer informação.

PushData()

Envia dados da fonte de dados para o controlo de dados, sem devolver qualquer informação.

RemoveAt(Int32)

Quando sobrescrito numa classe derivada, elimina a linha no índice especificado da lista subjacente.

ResumeBinding()

Quando sobreposto numa classe derivada, retoma a ligação de dados.

SuspendBinding()

Quando sobreposta numa classe derivada, suspende a ligação de dados.

ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)
UpdateIsBinding()

Quando é sobreposto numa classe derivada, atualiza a ligação.

evento

Name Description
BindingComplete

Ocorre na conclusão de uma operação de ligação de dados.

CurrentChanged

Ocorre quando o item atualmente vinculado muda.

CurrentItemChanged

Ocorre quando o estado do item atualmente atribuído muda.

DataError

Ocorre quando um Exception é silenciosamente tratado pelo BindingManagerBase.

PositionChanged

Ocorre depois de o valor da Position propriedade ter mudado.

Aplica-se a

Ver também