Assembly : System.Windows.Forms (dans system.windows.forms.dll)
SyntaxePublic MustInherit Class BindingManagerBase
Dim instance As BindingManagerBase
public abstract class BindingManagerBase
public ref class BindingManagerBase abstract
public abstract class BindingManagerBase
public abstract class BindingManagerBase
NotesLe BindingManagerBase permet la synchronisation des contrôles liés aux données dans un Windows Form qui sont liés à la même source de données. Pour plus d'informations sur la liaison simple d'un contrôle à une source de données, consultez la classe Binding. Par exemple, supposez qu'un formulaire contient deux contrôles TextBox liés à la même source de données mais à des colonnes différentes. La source de données peut être un DataTable qui contient des noms de clients, pendant que les colonnes peuvent contenir les premiers et les derniers noms. Les deux contrôles doivent être synchronisés de façon à afficher les prénom et nom corrects pour le même client. Le CurrencyManager, qui hérite de la classe BindingManagerBase, réalise cette synchronisation en maintenant un pointeur vers l'élément actuel de la source de données. Les contrôles TextBox sont liés à l'élément en cours de façon à afficher les informations pour la même ligne. Si l'élément en cours change, le CurrencyManager avertit tous les contrôles liés de sorte qu'ils puissent actualiser leurs données. De plus, vous pouvez définir la propriété Position pour spécifier la ligne dans le DataTable vers lesquels les contrôles pointent. Pour déterminer le nombre de lignes dans la source de données, utilisez la propriété Count.
Le CurrencyManager est nécessaire parce que les sources de données ne gèrent pas nécessairement un pointeur d'élément en cours. Par exemple, les tableaux et les objets ArrayList peuvent être des sources de données, mais ils ne comportent pas de propriété qui retourne l'élément en cours. Pour obtenir l'élément en cours, utilisez la propriété Current.
Le PropertyManager hérite également du BindingManagerBase et il est utilisé pour conserver la propriété en cours d'un objet, plutôt que la propriété d'un objet en cours dans une source de données. Toute tentative de définition de la propriété Position ou Count pour PropertyManager n'a pour cette raison aucun effet.
Pour créer un BindingManagerBase, utilisez la classe BindingContext, qui retourne un CurrencyManager ou un PropertyManager, suivant la source de données managée.
Les programmeurs de solutions sont encouragés à lier directement des contrôles à un composant BindingSource qui agit à la fois comme une source de données et comme un connecteur de données à la source de données cible réelle. BindingSource simplifie énormément à la fois la liaison de données simple et complexe, y compris la gestion de devise entre le contrôle et sa cible.
Remarques à l'attention des héritiers Quand vous héritez de BindingManagerBase, vous devez substituer les membres abstraits suivants : AddNew, Count, CancelCurrentEdit, Current, EndCurrentEdit, GetItemProperties, OnCurrentChanged, Position, RemoveAt, ResumeBinding, SuspendBinding, et UpdateIsBinding.
ExempleL'exemple de code suivant utilise le BindingContext pour retourner un BindingManagerBase pour une source de données spécifique. (L'exemple suppose que vous ayez déclaré myBindingManagerBase dans la section Déclarations du module). L'exemple ajoute ensuite des délégués d'événement aux événements CurrentChanged et PositionChanged. Enfin, l'exemple contient quatre méthodes (MoveNext, MovePrevious, MoveFirst et MoveLast) qui incrémentent ou décrémentent la propriété Position et paramètrent le Position à la première ou dernière ligne dans la liste. La dernière ligne dans la liste est déterminée en utilisant la propriété Count.
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
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; }
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.get_BindingContext().get_Item(dataSet1, "Customers.CustomersToOrders"); // Adds delegates to the CurrentChanged and PositionChanged events. myBindingManagerBase.add_PositionChanged(new EventHandler (BindingManagerBase_PositionChanged)); myBindingManagerBase.add_CurrentChanged(new EventHandler (BindingManagerBase_CurrentChanged)); } //GetBindingManagerBase private void BindingManagerBase_PositionChanged(Object sender, EventArgs e) { // Prints the new Position of the BindingManagerBase. Console.Write("Position Changed: "); Console.WriteLine(((BindingManagerBase)(sender)).get_Position()); } //BindingManagerBase_PositionChanged private void BindingManagerBase_CurrentChanged(Object sender, EventArgs e) { // Prints the new value of the current object. Console.Write("Current Changed: "); Console.WriteLine(((BindingManagerBase)(sender)).get_Current()); } //BindingManagerBase_CurrentChanged private void MoveNext() { // Increments the Position property value by one. myBindingManagerBase.set_Position(myBindingManagerBase.get_Position() + 1); } //MoveNext private void MovePrevious() { // Decrements the Position property value by one. myBindingManagerBase.set_Position(myBindingManagerBase.get_Position() - 1); } //MovePrevious private void MoveFirst() { // Goes to the first row in the list. myBindingManagerBase.set_Position(0); } //MoveFirst private void MoveLast() { // Goes to the last row in the list. myBindingManagerBase.set_Position(myBindingManagerBase.get_Count() - 1); } //MoveLast
Hiérarchie d'héritageSystem.Windows.Forms.BindingManagerBase
System.Windows.Forms.CurrencyManager
System.Windows.Forms.PropertyManager
Sécurité des threads
Plates-formesWindows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile pour Pocket PC, Windows Mobile pour Smartphone, Windows Server 2003, Windows XP Édition Media Center, Windows XP Professionnel Édition x64, Windows XP SP2, Windows XP Starter Edition
Le .NET Framework ne prend pas en charge toutes les versions de chaque plate-forme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise.
Informations de version
Outils (masquer)
S'enregistrer
Liste des Membres
Qui est en ligne?
FAQ