BindingManagerBase Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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 MoveFirst
lista. MovePrevious
MoveNext
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. |