Modes d'affichage des données dans le contrôle DataGridView Windows FormsData Display Modes in the Windows Forms DataGridView Control

Le DataGridView contrôle peut afficher des données en trois modes distincts : dépendant, indépendant et virtuel.The DataGridView control can display data in three distinct modes: bound, unbound, and virtual. Choisissez le mode plus approprié selon vos besoins.Choose the most suitable mode based on your requirements.

IndépendantUnbound

Le mode indépendant est approprié pour l’affichage de petites quantités de données que vous gérez par programmation.Unbound mode is suitable for displaying relatively small amounts of data that you manage programmatically. Vous n’attachez pas le DataGridView contrôle directement à une source de données comme en mode dépendant.You do not attach the DataGridView control directly to a data source as in bound mode. Au lieu de cela, vous devez remplir le contrôle vous-même, généralement à l’aide de la DataGridViewRowCollection.Add (méthode).Instead, you must populate the control yourself, typically by using the DataGridViewRowCollection.Add method.

Le mode indépendant peut être particulièrement utile pour les données en lecture seule, statiques, ou lorsque vous souhaitez fournir votre propre code qui interagit avec un magasin de données externe.Unbound mode can be particularly useful for static, read-only data, or when you want to provide your own code that interacts with an external data store. Lorsque vous souhaitez que vos utilisateurs pour interagir avec une source de données externe, toutefois, vous utiliserez généralement le mode dépendant.When you want your users to interact with an external data source, however, you will typically use bound mode.

Pour obtenir un exemple qui utilise en lecture seule indépendant DataGridView, consultez Comment : Créer un contrôle de DataGridView indépendant Windows Forms.For an example that uses a read-only unbound DataGridView, see How to: Create an Unbound Windows Forms DataGridView Control.

liéBound

Mode dépendant convient pour la gestion des données à l’aide d’une interaction automatique avec le magasin de données.Bound mode is suitable for managing data using automatic interaction with the data store. Vous pouvez attacher le DataGridView contrôle directement à sa source de données en définissant le DataSource propriété.You can attach the DataGridView control directly to its data source by setting the DataSource property. Lorsque le contrôle est lié aux données, les lignes de données sont envoyées et extraites sans nécessiter une gestion explicite de votre part.When the control is data bound, data rows are pushed and pulled without the need of explicit management on your part. Lorsque le AutoGenerateColumns propriété est true, chaque colonne dans votre source de données entraîne une colonne correspondante doit être créé dans le contrôle.When the AutoGenerateColumns property is true, each column in your data source will cause a corresponding column to be created in the control. Si vous préférez créer vos propres colonnes, vous pouvez définir cette propriété false et utiliser le DataPropertyName propriété à lier chaque colonne lorsque vous le configurez.If you prefer to create your own columns, you can set this property to false and use the DataPropertyName property to bind each column when you configure it. Cela est utile lorsque vous souhaitez utiliser un type de colonne autre que les types qui sont générés par défaut.This is useful when you want to use a column type other than the types that are generated by default. Pour plus d’informations, consultez Types de colonnes dans le contrôle DataGridView Windows Forms.For more information, see Column Types in the Windows Forms DataGridView Control.

Pour obtenir un exemple qui utilise une limite DataGridView du contrôle, consultez procédure pas à pas : Validation des données dans les Windows Forms DataGridView Control.For an example that uses a bound DataGridView control, see Walkthrough: Validating Data in the Windows Forms DataGridView Control.

Vous pouvez également ajouter des colonnes indépendantes à un DataGridView contrôle en mode dépendant.You can also add unbound columns to a DataGridView control in bound mode. Cela est utile lorsque vous souhaitez afficher une colonne de boutons ou des liens qui permettent aux utilisateurs d’effectuer des actions sur des lignes spécifiques.This is useful when you want to display a column of buttons or links that enable users to perform actions on specific rows. Il est également utile afficher les colonnes avec des valeurs calculées à partir de colonnes liées.It is also useful to display columns with values calculated from bound columns. Vous pouvez remplir les valeurs de cellule pour les colonnes calculées dans un gestionnaire pour le CellFormatting événement.You can populate the cell values for calculated columns in a handler for the CellFormatting event. Si vous utilisez un DataSet ou DataTable comme source de données, toutefois, vous souhaiterez peut-être utiliser le DataColumn.Expression propriété pour créer une colonne calculée à la place.If you are using a DataSet or DataTable as the data source, however, you might want to use the DataColumn.Expression property to create a calculated column instead. Dans ce cas, le DataGridView contrôle traite la colonne calculée comme toute autre colonne dans la source de données.In this case, the DataGridView control will treat calculated column just like any other column in the data source.

Tri par colonnes indépendantes en mode dépendant n’est pas pris en charge.Sorting by unbound columns in bound mode is not supported. Si vous créez une colonne indépendante en mode dépendant qui contient des valeurs modifiables par l’utilisateur, vous devez implémenter le mode virtuel pour maintenir ces valeurs lorsque le contrôle est trié par une colonne dépendante.If you create an unbound column in bound mode that contains user-editable values, you must implement virtual mode to maintain these values when the control is sorted by a bound column.

VirtuelVirtual

Avec le mode virtuel, vous pouvez implémenter vos propres opérations de gestion de données.With virtual mode, you can implement your own data management operations. Cela est nécessaire pour conserver les valeurs des colonnes indépendantes en mode dépendant lorsque le contrôle est trié par colonnes dépendantes.This is necessary to maintain the values of unbound columns in bound mode when the control is sorted by bound columns. La principale utilisation du mode virtuel est toutefois, pour optimiser les performances lors de l’interaction avec grandes quantités de données.The primary use of virtual mode, however, is to optimize performance when interacting with large amounts of data.

Vous attachez le DataGridView contrôle à un cache que vous gérez et votre code contrôle quand les lignes de données sont envoyées et extraites.You attach the DataGridView control to a cache that you manage, and your code controls when data rows are pushed and pulled. Pour minimiser l’encombrement mémoire, le cache doit être similaire au nombre de lignes actuellement affichées.To keep the memory footprint small, the cache should be similar in size to the number of rows currently displayed. Lorsque l’utilisateur fait défiler de nouvelles lignes dans la vue, votre code demande de nouvelles données à partir du cache et vide éventuellement les anciennes données de la mémoire.When the user scrolls new rows into view, your code requests new data from the cache and optionally flushes old data from memory.

Lorsque vous implémentez le mode virtuel, vous devez suivre à quel moment une nouvelle ligne est nécessaire dans le modèle de données et quand pour annuler l’ajout de la nouvelle ligne.When you are implementing virtual mode, you will need to track when a new row is needed in the data model and when to rollback the addition of the new row. L’implémentation exacte de cette fonctionnalité dépend de l’implémentation du modèle de données et la sémantique de transaction du modèle de données ; Indique si la validation étendue est au niveau de la cellule ou la ligne.The exact implementation of this functionality will depend on the implementation of the data model and the transaction semantics of the data model; whether commit scope is at the cell or row level.

Pour plus d’informations sur le mode virtuel, consultez Mode virtuel dans le contrôle DataGridView Windows Forms.For more information about virtual mode, see Virtual Mode in the Windows Forms DataGridView Control. Pour obtenir un exemple qui montre comment utiliser les événements du mode virtuel, consultez procédure pas à pas : Implémentation du Mode virtuel dans les Windows Forms DataGridView Control.For an example that shows how to use virtual mode events, see Walkthrough: Implementing Virtual Mode in the Windows Forms DataGridView Control.

Voir aussiSee also