BindingManagerBase Classe

Définition

Manage tous les objets Binding qui sont liés aux mêmes sources de données et données membres.Manages all Binding objects that are bound to the same data source and data member. Cette classe est abstraite.This class is abstract.

public ref class BindingManagerBase abstract
public abstract class BindingManagerBase
type BindingManagerBase = class
Public MustInherit Class BindingManagerBase
Héritage
BindingManagerBase
Dérivé

Exemples

L’exemple de code suivant utilise la BindingContext pour retourner une BindingManagerBase pour une source de données spécifique.The following code example uses the BindingContext to return a BindingManagerBase for a specific data source. (L’exemple suppose que vous avez déclaré myBindingManagerBase dans la section déclarations du module.) L’exemple ajoute ensuite des délégués d’événements aux événements CurrentChanged et PositionChanged.(The example assumes you have declared myBindingManagerBase in the Declarations section of the module.) The example then adds event delegates to the CurrentChanged and PositionChanged events. Enfin, l’exemple contient quatre méthodes (MoveNext, MovePrevious, MoveFirstet MoveLast) qui incrémentent ou décrémentent la propriété Position, et qui définissent la Position sur la première ou la dernière ligne de la liste.Lastly, the example contains four methods (MoveNext, MovePrevious, MoveFirst, and MoveLast) that increment or decrement the Position property, and set the Position to the first or last row in the list. La dernière ligne de la liste est déterminée à l’aide de la propriété Count.The last row in the list is determined by using the Count property.

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

Remarques

Le BindingManagerBase permet la synchronisation des contrôles liés aux données sur un Windows Form qui sont liés à la même source de données.The BindingManagerBase enables the synchronization of data-bound controls on a Windows Form that are bound to the same data source. (Pour plus d’informations sur la liaison simple d’un contrôle à une source de données, consultez la classe Binding.) Par exemple, supposons qu’un formulaire contient deux contrôles TextBox liés à la même source de données mais à des colonnes différentes.(For more information about simple binding a control to a data source, see the Binding class.) For example, suppose that a form contains two TextBox controls that are bound to the same data source but to different columns. La source de données peut être un DataTable qui contient des noms de clients, alors que les colonnes peuvent contenir le prénom et le nom.The data source might be a DataTable that contains customer names, while the columns might contain the first and last names. Les deux contrôles doivent être synchronisés pour afficher le prénom et le nom corrects ensemble pour le même client.The two controls must be synchronized in order to display the correct first and last names together for the same customer. Le CurrencyManager, qui hérite de la classe BindingManagerBase, effectue cette synchronisation en conservant un pointeur vers l’élément actuel dans la source de données.The CurrencyManager, which inherits from the BindingManagerBase class, accomplishes this synchronization by maintaining a pointer to the current item in the data source. Les contrôles TextBox sont liés à l’élément actuel afin qu’ils affichent les informations pour la même ligne.The TextBox controls are bound to the current item so they display the information for the same row. Lorsque l’élément actuel change, le CurrencyManager notifie tous les contrôles liés afin qu’ils puissent actualiser leurs données.When the current item changes, the CurrencyManager notifies all the bound controls so that they can refresh their data. En outre, vous pouvez définir la propriété Position pour spécifier la ligne dans la DataTable vers laquelle les contrôles pointent.Furthermore, you can set the Position property to specify the row in the DataTable that the controls point to. Pour déterminer le nombre de lignes présentes dans la source de données, utilisez la propriété Count.To determine how many rows exist in the data source, use the Count property.

Le CurrencyManager est nécessaire, car les sources de données ne maintiennent pas nécessairement un pointeur d’élément actif.The CurrencyManager is necessary because data sources do not necessarily maintain a current-item pointer. Par exemple, les tableaux et les objets ArrayList peuvent être des sources de données, mais ils n’ont pas de propriété qui retourne l’élément actuel.For instance, arrays and ArrayList objects can be data sources, but they do not have a property that returns the current item. Pour accéder à l’élément actuel, utilisez la propriété Current.To get the current item, use the Current property.

Le PropertyManager hérite également de l' BindingManagerBase, et il est utilisé pour conserver la propriété actuelle d’un objet, plutôt que la propriété d’un objet actuel dans une source de données.The PropertyManager also inherits from the BindingManagerBase, and it is used to maintain the current property of an object, rather than the property of a current object in a data source. Pour cette raison, la tentative de définition de la propriété Position ou Count pour un PropertyManager n’a aucun effet.For this reason, trying to set the Position or Count property for a PropertyManager has no effect.

Pour créer un BindingManagerBase, utilisez la classe BindingContext, qui retourne un CurrencyManager ou un PropertyManager, en fonction de la source de données gérée.To create a BindingManagerBase, use the BindingContext class, which returns either a CurrencyManager or a PropertyManager, depending on the data source being managed.

Les programmeurs de solutions sont encouragés à lier directement les contrôles à un composant BindingSource, qui agit à la fois comme source de données et comme connecteur de données à la source de données cible réelle.Solutions programmers are encouraged to bind controls directly to a BindingSource component, which acts as both a data source and data connector to the actual target data source. BindingSource simplifie grandement la liaison de données simple et complexe, y compris la gestion de la devise entre le contrôle et sa cible.BindingSource greatly simplifies both simple and complex data binding, including managing currency between the control and its target.

Notes pour les responsables de l’implémentation

Lorsque vous héritez de BindingManagerBase, vous devez substituer les membres abstraits suivants : AddNew(), Count, CancelCurrentEdit(), Current, EndCurrentEdit(), GetItemProperties(), OnCurrentChanged(EventArgs), Position, RemoveAt(Int32), ResumeBinding(), SuspendBinding()et UpdateIsBinding().When you inherit from BindingManagerBase, you must override the following abstract members: AddNew(), Count, CancelCurrentEdit(), Current, EndCurrentEdit(), GetItemProperties(), OnCurrentChanged(EventArgs), Position, RemoveAt(Int32), ResumeBinding(), SuspendBinding(), and UpdateIsBinding().

Constructeurs

BindingManagerBase()

Initialise une nouvelle instance de la classe BindingManagerBase.Initializes a new instance of the BindingManagerBase class.

Champs

onCurrentChangedHandler

Indique le gestionnaire d’événements pour l’événement CurrentChanged.Specifies the event handler for the CurrentChanged event.

onPositionChangedHandler

Indique le gestionnaire d’événements pour l’événement PositionChanged.Specifies the event handler for the PositionChanged event.

Propriétés

Bindings

Extrait la collection des liaisons managées.Gets the collection of bindings being managed.

Count

En cas de substitution dans une classe dérivée, obtient le nombre de lignes managées par BindingManagerBase.When overridden in a derived class, gets the number of rows managed by the BindingManagerBase.

Current

En cas de substitution dans une classe dérivée, obtient l'objet en cours.When overridden in a derived class, gets the current object.

IsBindingSuspended

Obtient une valeur indiquant si la liaison est suspendue.Gets a value indicating whether binding is suspended.

Position

En cas de substitution dans une classe dérivée, obtient ou définit la position dans la liste sous-jacente vers laquelle pointent les contrôles liés à cette source de données.When overridden in a derived class, gets or sets the position in the underlying list that controls bound to this data source point to.

Méthodes

AddNew()

En cas de substitution dans une classe dérivée, ajoute un nouvel élément à la liste sous-jacente.When overridden in a derived class, adds a new item to the underlying list.

CancelCurrentEdit()

En cas de substitution dans une classe dérivée, annule la modification en cours.When overridden in a derived class, cancels the current edit.

EndCurrentEdit()

En cas de substitution dans une classe dérivée, termine la modification en cours.When overridden in a derived class, ends the current edit.

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.Determines whether the specified object is equal to the current object.

(Hérité de Object)
GetHashCode()

Sert de fonction de hachage par défaut.Serves as the default hash function.

(Hérité de Object)
GetItemProperties()

En cas de substitution dans une classe dérivée, obtient la collection des descripteurs de propriété pour la liaison.When overridden in a derived class, gets the collection of property descriptors for the binding.

GetItemProperties(ArrayList, ArrayList)

Obtient la collection des descripteurs de propriété pour la liaison en utilisant l'objet ArrayList spécifié.Gets the collection of property descriptors for the binding using the specified ArrayList.

GetItemProperties(Type, Int32, ArrayList, ArrayList)

Obtient la liste des propriétés des éléments managés par ce BindingManagerBase.Gets the list of properties of the items managed by this BindingManagerBase.

GetListName(ArrayList)

En cas de substitution dans une classe dérivée, obtient le nom de la liste fournissant les données pour la liaison.When overridden in a derived class, gets the name of the list supplying the data for the binding.

GetType()

Obtient le Type de l'instance actuelle.Gets the Type of the current instance.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.Creates a shallow copy of the current Object.

(Hérité de Object)
OnBindingComplete(BindingCompleteEventArgs)

Déclenche l'événement BindingComplete.Raises the BindingComplete event.

OnCurrentChanged(EventArgs)

Déclenche l'événement CurrentChanged.Raises the CurrentChanged event.

OnCurrentItemChanged(EventArgs)

Déclenche l'événement CurrentItemChanged.Raises the CurrentItemChanged event.

OnDataError(Exception)

Déclenche l'événement DataError.Raises the DataError event.

PullData()

Extrait des données du contrôle lié aux données vers la source de données sans retourner d'informations.Pulls data from the data-bound control into the data source, returning no information.

PushData()

Exécute un push à partir de la source de données dans le contrôle lié aux données, sans retourner d'informations.Pushes data from the data source into the data-bound control, returning no information.

RemoveAt(Int32)

En cas de substitution dans une classe dérivée, supprime la ligne à l'index spécifié de la liste sous-jacente.When overridden in a derived class, deletes the row at the specified index from the underlying list.

ResumeBinding()

En cas de substitution dans une classe dérivée, rétablit la liaison de données.When overridden in a derived class, resumes data binding.

SuspendBinding()

En cas de substitution dans une classe dérivée, suspend la liaison de données.When overridden in a derived class, suspends data binding.

ToString()

Retourne une chaîne qui représente l'objet actif.Returns a string that represents the current object.

(Hérité de Object)
UpdateIsBinding()

En cas de substitution dans une classe dérivée, met à jour la liaison de données.When overridden in a derived class, updates the binding.

Événements

BindingComplete

Se produit à la fin d'une opération de liaison de données.Occurs at the completion of a data-binding operation.

CurrentChanged

Se produit quand l'élément actuellement lié change.Occurs when the currently bound item changes.

CurrentItemChanged

Se produit quand l'état de l'élément lié aux données est modifié.Occurs when the state of the currently bound item changes.

DataError

Se produit lorsqu'un Exception est géré silencieusement par le BindingManagerBase.Occurs when an Exception is silently handled by the BindingManagerBase.

PositionChanged

Se produit une fois que la valeur de la propriété Position a été modifiée.Occurs after the value of the Position property has changed.

S’applique à

Voir aussi