BindingManagerBase Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Gestisce tutti gli Binding oggetti associati alla stessa origine dati e allo stesso membro dati. Questa classe è astratta.
public ref class BindingManagerBase abstract
public abstract class BindingManagerBase
type BindingManagerBase = class
Public MustInherit Class BindingManagerBase
- Ereditarietà
-
BindingManagerBase
- Derivato
Esempio
Nell'esempio di codice seguente viene utilizzato per BindingContext restituire un oggetto BindingManagerBase per un'origine dati specifica. L'esempio presuppone che sia stato dichiarato myBindingManagerBase nella sezione Dichiarazioni del modulo. Nell'esempio vengono quindi aggiunti delegati di evento agli CurrentChanged eventi e PositionChanged . Infine, l'esempio contiene quattro metodi (, , e ) che incrementa o decrementa la Position proprietà e imposta l'oggetto Position sulla prima o sull'ultima riga dell'elenco.MoveLastMoveFirstMovePreviousMoveNext L'ultima riga nell'elenco viene determinata utilizzando la Count proprietà .
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
Commenti
BindingManagerBase abilita la sincronizzazione dei controlli associati a dati in un Windows Form associato alla stessa origine dati. Per altre informazioni sull'associazione semplice di un controllo a un'origine dati, vedere la Binding classe . Si supponga, ad esempio, che una maschera contenga due TextBox controlli associati alla stessa origine dati, ma a colonne diverse. L'origine dati potrebbe essere un DataTable oggetto che contiene i nomi dei clienti, mentre le colonne potrebbero contenere il nome e il cognome. I due controlli devono essere sincronizzati per visualizzare il nome e il cognome corretti insieme per lo stesso cliente. L'oggetto CurrencyManager, che eredita dalla BindingManagerBase classe , esegue questa sincronizzazione mantenendo un puntatore all'elemento corrente nell'origine dati. I TextBox controlli sono associati all'elemento corrente in modo che visualizzino le informazioni per la stessa riga. Quando l'elemento corrente viene modificato, CurrencyManager invia una notifica a tutti i controlli associati in modo che possano aggiornare i dati. Inoltre, è possibile impostare la Position proprietà per specificare la riga nell'oggetto DataTable a cui puntano i controlli. Per determinare il numero di righe presenti nell'origine dati, utilizzare la Count proprietà .
È CurrencyManager necessario perché le origini dati non mantengono necessariamente un puntatore dell'elemento corrente. Ad esempio, le matrici e ArrayList gli oggetti possono essere origini dati, ma non hanno una proprietà che restituisce l'elemento corrente. Per ottenere l'elemento corrente, utilizzare la Current proprietà .
L'oggetto PropertyManagerBindingManagerBaseeredita anche da e viene utilizzato per mantenere la proprietà corrente di un oggetto, anziché la proprietà di un oggetto corrente in un'origine dati. Per questo motivo, il tentativo di impostare la Position proprietà o Count per un oggetto PropertyManager non ha alcun effetto.
Per creare un BindingManagerBaseoggetto , usare la BindingContext classe , che restituisce un CurrencyManager oggetto o PropertyManager, a seconda dell'origine dati gestita.
I programmatori di soluzioni sono incoraggiati a associare i controlli direttamente a un BindingSource componente, che funge sia da origine dati che da connettore dati all'origine dati di destinazione effettiva. BindingSource semplifica notevolmente sia il data binding semplice che quello complesso, inclusa la gestione della valuta tra il controllo e la destinazione.
Note per gli implementatori
Quando si eredita da BindingManagerBase, è necessario eseguire l'override dei membri astratti seguenti: AddNew(), GetItemProperties()CancelCurrentEdit()EndCurrentEdit()CurrentCount, PositionRemoveAt(Int32)ResumeBinding()OnCurrentChanged(EventArgs)SuspendBinding()e .UpdateIsBinding()
Costruttori
| Nome | Descrizione |
|---|---|
| BindingManagerBase() |
Inizializza una nuova istanza della classe BindingManagerBase. |
Campi
| Nome | Descrizione |
|---|---|
| onCurrentChangedHandler |
Specifica il gestore eventi per l'evento CurrentChanged . |
| onPositionChangedHandler |
Specifica il gestore eventi per l'evento PositionChanged . |
Proprietà
| Nome | Descrizione |
|---|---|
| Bindings |
Ottiene la raccolta di associazioni gestite. |
| Count |
In caso di override in una classe derivata, ottiene il numero di righe gestite da BindingManagerBase. |
| Current |
In caso di override in una classe derivata, ottiene l'oggetto corrente. |
| IsBindingSuspended |
Ottiene un valore che indica se l'associazione è sospesa. |
| Position |
In caso di override in una classe derivata, ottiene o imposta la posizione nell'elenco sottostante a cui sono associati i controlli associati a questo punto di origine dati. |
Metodi
| Nome | Descrizione |
|---|---|
| AddNew() |
Quando sottoposto a override in una classe derivata, aggiunge un nuovo elemento all'elenco sottostante. |
| CancelCurrentEdit() |
Quando sottoposto a override in una classe derivata, annulla la modifica corrente. |
| EndCurrentEdit() |
Quando sottoposto a override in una classe derivata, termina la modifica corrente. |
| Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
| GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
| GetItemProperties() |
In caso di override in una classe derivata, ottiene la raccolta di descrittori di proprietà per l'associazione. |
| GetItemProperties(ArrayList, ArrayList) |
Ottiene la raccolta di descrittori di proprietà per l'associazione utilizzando l'oggetto specificato ArrayList. |
| GetItemProperties(Type, Int32, ArrayList, ArrayList) |
Ottiene l'elenco delle proprietà degli elementi gestiti da questo BindingManagerBaseoggetto . |
| GetListName(ArrayList) |
In caso di override in una classe derivata, ottiene il nome dell'elenco che fornisce i dati per l'associazione. |
| GetType() |
Ottiene il Type dell'istanza corrente. (Ereditato da Object) |
| MemberwiseClone() |
Crea una copia superficiale del Objectcorrente. (Ereditato da Object) |
| OnBindingComplete(BindingCompleteEventArgs) |
Genera l'evento BindingComplete. |
| OnCurrentChanged(EventArgs) |
Genera l'evento CurrentChanged. |
| OnCurrentItemChanged(EventArgs) |
Genera l'evento CurrentItemChanged. |
| OnDataError(Exception) |
Genera l'evento DataError. |
| PullData() |
Esegue il pull dei dati dal controllo associato a dati nell'origine dati, senza restituire informazioni. |
| PushData() |
Esegue il push dei dati dall'origine dati nel controllo associato a dati, senza restituire informazioni. |
| RemoveAt(Int32) |
Quando sottoposto a override in una classe derivata, elimina la riga in corrispondenza dell'indice specificato dall'elenco sottostante. |
| ResumeBinding() |
Quando sottoposto a override in una classe derivata, riprende il data binding. |
| SuspendBinding() |
Quando sottoposto a override in una classe derivata, sospende il data binding. |
| ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
| UpdateIsBinding() |
Quando sottoposto a override in una classe derivata, aggiorna l'associazione. |
Eventi
| Nome | Descrizione |
|---|---|
| BindingComplete |
Si verifica al completamento di un'operazione di associazione dati. |
| CurrentChanged |
Si verifica quando l'elemento attualmente associato cambia. |
| CurrentItemChanged |
Si verifica quando lo stato dell'elemento attualmente associato cambia. |
| DataError |
Si verifica quando un oggetto Exception viene gestito automaticamente da BindingManagerBase. |
| PositionChanged |
Si verifica dopo la modifica del valore della Position proprietà. |