BindingManagerBase Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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. |