Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

BindingContext classe

 

Date de publication : novembre 2016

Gère la collection d’objets BindingManagerBase pour les objets qui héritent de la classe Control.

Espace de noms:   System.Windows.Forms
Assembly:  System.Windows.Forms (dans System.Windows.Forms.dll)

System.Object
  System.Windows.Forms.BindingContext

public class BindingContext : ICollection, IEnumerable

NomDescription
System_CAPS_pubmethodBindingContext()

Initialise une nouvelle instance de la classe BindingContext.

NomDescription
System_CAPS_pubpropertyIsReadOnly

Cette API prend en charge l’infrastructure de produit et n’est pas destinée à être utilisée directement depuis votre code. Obtient une valeur indiquant si la collection est en lecture seule.

System_CAPS_pubpropertyItem[Object]

Obtient le BindingManagerBase associé à la source de données spécifiée.

System_CAPS_pubpropertyItem[Object, String]

Obtient un BindingManagerBase qui est associé à la source de données spécifiée et le membre de données.

NomDescription
System_CAPS_protmethodAdd(Object, BindingManagerBase)

Ajoute le BindingManagerBase associé à une source de données spécifique à la collection.

System_CAPS_protmethodAddCore(Object, BindingManagerBase)

Cette API prend en charge l’infrastructure de produit et n’est pas destinée à être utilisée directement depuis votre code. Ajoute le BindingManagerBase associé à une source de données spécifique à la collection.

System_CAPS_protmethodClear()

Efface la collection de n’importe quel BindingManagerBase objets.

System_CAPS_protmethodClearCore()

Cette API prend en charge l’infrastructure de produit et n’est pas destinée à être utilisée directement depuis votre code. Efface la collection.

System_CAPS_pubmethodContains(Object)

Obtient une valeur indiquant si le BindingContext contient le BindingManagerBase associé à la source de données spécifiée.

System_CAPS_pubmethodContains(Object, String)

Obtient une valeur indiquant si le BindingContext contient le BindingManagerBase associé à la source de données spécifiée et le membre de données.

System_CAPS_pubmethodEquals(Object)

Détermine si l'objet spécifié est identique à l'objet actuel.(Hérité de Object.)

System_CAPS_protmethodFinalize()

Autorise un objet à tenter de libérer des ressources et d'exécuter d'autres opérations de nettoyage avant qu'il ne soit récupéré par l'opération garbage collection. (Hérité de Object.)

System_CAPS_pubmethodGetHashCode()

Fait office de fonction de hachage par défaut.(Hérité de Object.)

System_CAPS_pubmethodGetType()

Obtient le Type de l'instance actuelle.(Hérité de Object.)

System_CAPS_protmethodMemberwiseClone()

Crée une copie superficielle du Object actuel.(Hérité de Object.)

System_CAPS_protmethodOnCollectionChanged(CollectionChangeEventArgs)

Cette API prend en charge l’infrastructure de produit et n’est pas destinée à être utilisée directement depuis votre code. Déclenche l'événement CollectionChanged.

System_CAPS_protmethodRemove(Object)

Supprime le BindingManagerBase associé à la source de données spécifiée.

System_CAPS_protmethodRemoveCore(Object)

Cette API prend en charge l’infrastructure de produit et n’est pas destinée à être utilisée directement depuis votre code. Supprime le BindingManagerBase associé à la source de données spécifiée.

System_CAPS_pubmethodToString()

Retourne une chaîne qui représente l'objet actuel.(Hérité de Object.)

System_CAPS_pubmethodSystem_CAPS_staticUpdateBinding(BindingContext, Binding)

Associe un Binding avec un nouveau BindingContext.

NomDescription
System_CAPS_pubeventCollectionChanged

Cette API prend en charge l’infrastructure de produit et n’est pas destinée à être utilisée directement depuis votre code. Lève systématiquement une NotImplementedException lors du traitement.

NomDescription
System_CAPS_pubinterfaceSystem_CAPS_privmethodICollection.CopyTo(Array, Int32)

Cette API prend en charge l’infrastructure de produit et n’est pas destinée à être utilisée directement depuis votre code. Copie les éléments de la collection au niveau de l’index de collection dans un tableau spécifié.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIEnumerable.GetEnumerator()

Cette API prend en charge l’infrastructure de produit et n’est pas destinée à être utilisée directement depuis votre code. Obtient un énumérateur pour la collection.

System_CAPS_pubinterfaceSystem_CAPS_privpropertyICollection.Count

Cette API prend en charge l’infrastructure de produit et n’est pas destinée à être utilisée directement depuis votre code. Obtient le nombre total de CurrencyManager objets gérés par le BindingContext.

System_CAPS_pubinterfaceSystem_CAPS_privpropertyICollection.IsSynchronized

Cette API prend en charge l’infrastructure de produit et n’est pas destinée à être utilisée directement depuis votre code. Obtient une valeur indiquant si la collection est synchronisée.

System_CAPS_pubinterfaceSystem_CAPS_privpropertyICollection.SyncRoot

Cette API prend en charge l’infrastructure de produit et n’est pas destinée à être utilisée directement depuis votre code. Obtient un objet à utiliser pour la synchronisation (sécurité des threads).

NomDescription
System_CAPS_pubmethodAsParallel()

Surchargé. Active la parallélisation d'une requête.(Défini par ParallelEnumerable.)

System_CAPS_pubmethodAsQueryable()

Surchargé. Convertit un IEnumerable à un IQueryable.(Défini par Queryable.)

System_CAPS_pubmethodCast<TResult>()

Convertit les éléments d’un IEnumerable au type spécifié.(Défini par Enumerable.)

System_CAPS_pubmethodOfType<TResult>()

Filtre les éléments d’un IEnumerable basé sur un type spécifié.(Défini par Enumerable.)

Chaque Windows Form possède au moins une BindingContext objet qui gère la BindingManagerBase objets du formulaire. Étant donné que la BindingManagerBase classe est abstraite, le type de retour de la Item propriété est un CurrencyManager ou un PropertyManager. Si la source de données est un objet qui peut retourner qu’une seule propriété (au lieu d’une liste d’objets), le Type est un PropertyManager. Par exemple, si vous spécifiez un TextBox comme source de données, un PropertyManager est retourné. En revanche, si la source de données est un objet qui implémente IList ou IBindingList, un CurrencyManager est retourné.

Pour chaque source de données sur un Windows Form, il existe un seul CurrencyManager ou PropertyManager. Car il peut y avoir plusieurs sources de données associées à un Windows Form, le BindingContext vous permet de récupérer n’importe quel CurrencyManager associé à une source de données.

System_CAPS_noteRemarque

Lorsque vous utilisez la Item propriété, le BindingContext crée un objet BindingManagerBase si celui-ci n’existe pas. Cela peut entraîner une certaine confusion, car l’objet retourné ne peut pas gérer la liste (ou n’importe quelle liste) que vous avez l’intention. Pour éviter de retourner un non valide BindingManagerBase, utilisez le Contains pour déterminer si la destination BindingManagerBase existe déjà.

Si vous utilisez un contrôle conteneur, comme un GroupBox, Panel, ou TabControl, pour contenir des contrôles liés aux données, vous pouvez créer un BindingContext pour simplement ce contrôle conteneur et ses contrôles. Ensuite, chaque partie de votre formulaire peut être gérée par son propre BindingManagerBase. Consultez le BindingContext constructeur pour plus d’informations sur la création de plusieurs BindingManagerBase objets pour la même source de données.

Si vous ajoutez un TextBox contrôle à un formulaire et le lier à une colonne d’une table dans un dataset, le contrôle communique avec le BindingContext du formulaire. Le BindingContext, à son tour, communique avec le spécifique CurrencyManager pour cette association de données. Si vous interrogiez les Position propriété de la CurrencyManager, elle rapporterait l’enregistrement actif pour la liaison de ce TextBox contrôle. Dans l’exemple de code suivant, un TextBox contrôle est lié à la FirstName colonne d’un Customers table sur le dataSet1 jeu de données via le BindingContext pour le formulaire, il se trouve sur.

textBox1.DataBindings.Add("Text", dataSet1, "Customers.FirstName");


Vous pouvez ajouter un deuxième TextBox contrôle (TextBox2) au formulaire et liez-le à le LastName la colonne de la Customers table dans le même jeu de données. Le BindingContext est informé de la première liaison (TextBox1 à Customers.FirstName), il utilise le même CurrencyManager, car les deux zones de texte sont liées au même dataset (DataSet1).

textBox2.DataBindings.Add("Text", dataSet1, "Customers.LastName");


Si vous liez TextBox2 à un dataset différent, le BindingContext crée et gère un deuxième CurrencyManager.

Il est important d’être cohérent sur la façon dont vous définissez la DataSource et DisplayMember Propriétés ; sinon, le BindingContext crée plusieurs gestionnaires pour le même dataset, ce qui provoque des erreurs. L’exemple de code suivant illustre quelques façons de définir les propriétés et leur sont associées BindingContext objets. Vous pouvez définir les propriétés à l’aide d’une des méthodes suivantes, tant que vous êtes cohérent dans l’ensemble de votre code.

comboBox1.DataSource = DataSet1;
comboBox1.DisplayMember = "Customers.FirstName";
this.BindingContext[dataSet1, "Customers"].Position = 1;


comboBox1.DataSource = DataSet1.Customers;
comboBox1.DisplayMember = "FirstName";
this.BindingContext[dataSet1.Customers].Position = 1;


System_CAPS_noteRemarque

La plupart des applications Windows Forms lient par le biais une BindingSource. Le BindingSource composant encapsule un CurrencyManager et expose le CurrencyManager interface de programmation. Lors de l’utilisation un BindingSource pour la liaison, vous devez utiliser les membres exposés par le BindingSource pour manipuler des « devise » (autrement dit, Position) au lieu de traverser le BindingContext.

L’exemple de code suivant crée quatre Binding objets à lier cinq contrôles, un DateTimePicker et quatre TextBox contrôles — à plusieurs sources de données. Le BindingContext est ensuite utilisée pour obtenir le BindingManagerBase pour chaque source de données.

protected void BindControls()
{
   /* Create two Binding objects for the first two TextBox 
      controls. The data-bound property for both controls 
      is the Text property. The data source is a DataSet 
      (ds). The data member is a navigation path in the form: 
      "TableName.ColumnName". */
   text1.DataBindings.Add(new Binding
   ("Text", ds, "customers.custName"));
   text2.DataBindings.Add(new Binding
   ("Text", ds, "customers.custID"));

   /* Bind the DateTimePicker control by adding a new Binding. 
      The data member of the DateTimePicker is a navigation path:
      TableName.RelationName.ColumnName string. */
   DateTimePicker1.DataBindings.Add(new 
   Binding("Value", ds, "customers.CustToOrders.OrderDate"));

   /* Add event delegates for the Parse and Format events to a 
      new Binding object, and add the object to the third 
      TextBox control's BindingsCollection. The delegates 
      must be added before adding the Binding to the 
      collection; otherwise, no formatting occurs until 
      the Current object of the BindingManagerBase for 
      the data source changes. */
      Binding b = new Binding
      ("Text", ds, "customers.custToOrders.OrderAmount");
   b.Parse+=new ConvertEventHandler(CurrencyStringToDecimal);
   b.Format+=new ConvertEventHandler(DecimalToCurrencyString);
   text3.DataBindings.Add(b);

   // Get the BindingManagerBase for the Customers table. 
   bmCustomers = this.BindingContext [ds, "Customers"];

   /* Get the BindingManagerBase for the Orders table using the 
      RelationName. */ 
   bmOrders = this.BindingContext[ds, "customers.CustToOrders"];

   /* Bind the fourth TextBox control's Text property to the
   third control's Text property. */
   text4.DataBindings.Add("Text", text3, "Text");
}

.NET Framework
Disponible depuis 1.1

Tous les membres statiques publics ( Shared en Visual Basic) de ce type sont thread-safe. Les membres d’instance n’ont pas la garantie d’être thread-safe.

Retour au début
Afficher: