Share via


Sources de données prises en charge par les Windows Forms

Traditionnellement, les applications utilisaient la liaison de données pour exploiter les données stockées dans des bases de données. Avec la liaison de données Windows Forms, vous pouvez accéder aux données des bases de données mais aussi aux données d'autres structures, telles que les tableaux et les collections, sous certaines conditions.

Structures auxquelles se lier

Dans Windows Forms, vous pouvez créer une liaison avec une large gamme de structures allant de simples objets (liaison simple) à des listes complexes telles que les tables de données ADO.NET (liaison complexe). Pour la liaison simple, Windows Forms prend en charge la liaison aux propriétés publiques sur l'objet simple. La liaison basée sur liste de Windows Forms requiert en général que l'objet prenne en charge l'interface IList ou l'interface IListSource. En outre, si vous créez une liaison via un composant BindingSource, vous pouvez créer une liaison avec un objet qui prend en charge l'interface IEnumerable. Pour plus d'informations sur les interfaces en rapport avec la liaison de données, consultez Interfaces participant à la liaison de données.

La liste suivante affiche les structures avec lesquelles vous pouvez créer une liaison dans Windows Forms.

  • BindingSource
    Une BindingSource est la source de données Windows Forms la plus commune. Elle agit comme un proxy entre une source de données et les contrôles Windows Forms. Le modèle d'utilisation BindingSource général consiste à lier vos contrôles à la BindingSource et à lier la BindingSource à la source de données (par exemple, une table de données ADO.NET ou un objet métier). La BindingSource fournit des services qui activent et améliorent le niveau de prise en charge de la liaison de données. Par exemple, les contrôles basés sur liste de Windows Forms tels que DataGridView et ComboBox ne prennent pas directement en charge la création de liaison avec les sources de données IEnumerable, mais vous pouvez toutefois activer ce scénario en créant une liaison via une BindingSource. Dans ce cas, la BindingSource convertira la source de données en une IList.

  • Objets simples
    Windows Forms prend en charge la liaison de données entre des propriétés de contrôles et des propriétés publiques sur l'instance d'un objet à l'aide du type Binding. Windows Forms prend également en charge la liaison de contrôles basés sur liste, tels qu'un ListControl à une instance d'objet lorsqu'une BindingSource est utilisée.

  • Tableau ou collection
    Pour agir comme une source de données, une liste doit implémenter l'interface IList. Un tableau étant une instance de la classe Array en serait un exemple. Pour plus d'informations sur les tableaux, consultez Comment : créer un tableau d'objets (Visual Basic).

    En règle générale, vous devez utiliser BindingList<T> lorsque vous créez des listes d'objets pour la liaison de données. BindingList<T> est une version générique de l'interface IBindingList. L'interface IBindingList étend l'interface IList par l'ajout de propriétés, de méthodes et d'événements nécessaires à la liaison de données bidirectionnelle.

  • IEnumerable
    Les contrôles Windows Forms peuvent être liés aux sources de données qui prennent uniquement en charge l'interface IEnumerable s'ils sont liés via un composant BindingSource.

  • Objets de données ADO.NET
    ADO.NET propose une série de structures de données auxquelles il est possible de se lier. Chaque objet possède son propre niveau de sophistication et de complexité.

    • DataColumn. Une classe DataColumn est le bloc de construction fondamental d'une classe DataTable, dans la mesure où une table est constituée d'un certain nombre de colonnes. Chaque DataColumn possède une propriété DataType qui détermine le type de données figurant dans la colonne (par exemple, la marque d'une automobile dans une table décrivant des voitures). Vous pouvez créer une liaison simple entre un contrôle (la propriété Text d'un contrôle TextBox, par exemple) à une colonne d'une table de données.

    • DataTable. Une classe DataTable est la représentation d'une table, avec des lignes et des colonnes, dans ADO.NET. Une table de données contient deux collections : DataColumn qui représente les colonnes de données d'une table (et détermine le type des données pouvant être entrées dans cette table) et DataRow qui représente les lignes de données d'une table. Il est possible de créer une liaison complexe entre un contrôle et les informations contenues dans une table de données (comme la liaison d'un contrôle DataGridView à une table de données). Toutefois, lorsque vous créez une liaison à un objet DataTable, vous créez en fait une liaison avec la vue par défaut de la table.

    • DataView. Une classe DataView est une vue personnalisée d'une table de données unique pouvant être filtrée ou triée. Une vue de données est « l'instantané » des données utilisé par les contrôles dépendants complexes. Dans une vue de données, vous pouvez créer une liaison simple ou complexe aux données. Il faut toutefois savoir que vous créez, dans ce cas, une liaison à une « image » fixe des données plutôt qu'à une source de données qui effectue des mises à jour.

    • DataSet. Une classe DataSet est une collection de tables, de relations et de contraintes des données d'une base de données. Dans un groupe de données (dataset), vous pouvez créer une liaison simple ou complexe aux données. Il faut toutefois savoir que vous créez en réalité une liaison à l'objet DataViewManager par défaut du DataSet (voir ci-dessous).

    • DataViewManager. Une classe DataViewManager est une vue personnalisée de la classe DataSet entière, analogue à une classe DataView, mais avec les relations incluses. Avec une collection DataViewSettings, vous pouvez définir des filtres et des options de tri par défaut pour toutes les vues dont dispose le DataViewManager pour une table donnée.

Voir aussi

Concepts

Notification de modifications dans la liaison de données Windows Forms

Liaison de données et Windows Forms

Autres ressources

Liaison de données Windows Forms