Windows フォーム DataGridView コントロールでのデータ表示モードData Display Modes in the Windows Forms DataGridView Control

DataGridViewコントロールは、次の 3 つの異なるモードでデータを表示することができます。 バインド、バインドされていない、および仮想です。The DataGridView control can display data in three distinct modes: bound, unbound, and virtual. 要件に基づいて最も適したモードを選択します。Choose the most suitable mode based on your requirements.

バインドされていません。Unbound

非バインド モードは、比較的少量のプログラムで管理するデータを表示するために適しています。Unbound mode is suitable for displaying relatively small amounts of data that you manage programmatically. アタッチしない、DataGridViewバインド モードのようにデータ ソースへの直接制御します。You do not attach the DataGridView control directly to a data source as in bound mode. 代わりに、必要があります設定するコントロールを自分で通常を使用して、DataGridViewRowCollection.Addメソッド。Instead, you must populate the control yourself, typically by using the DataGridViewRowCollection.Add method.

非バインド モードは、静的な読み取り専用のデータ、または外部データ ストアと対話するコードを指定する場合に便利にできます。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. 外部データ ソースとの対話をユーザーにする場合は、ただしは通常モードを使用するバインド。When you want your users to interact with an external data source, however, you will typically use bound mode.

読み取り専用に使用する例については、バインドされていないDataGridViewを参照してください方法。バインドされていない Windows フォーム DataGridView コントロールの作成です。For an example that uses a read-only unbound DataGridView, see How to: Create an Unbound Windows Forms DataGridView Control.

バインドされています。Bound

バインド モードは、データ ストアと自動の操作を使用してデータを管理するために適しています。Bound mode is suitable for managing data using automatic interaction with the data store. アタッチすることができます、DataGridViewコントロールを設定してそのデータ ソースに直接、DataSourceプロパティ。You can attach the DataGridView control directly to its data source by setting the DataSource property. コントロールがバインドされたデータの場合は、データ行はプッシュし、プル ユーザー側で明示的に管理する必要がありません。When the control is data bound, data rows are pushed and pulled without the need of explicit management on your part. ときに、AutoGenerateColumnsプロパティはtrue、データ ソース内の各列は、コントロール内に作成する対応する列になります。When the AutoGenerateColumns property is true, each column in your data source will cause a corresponding column to be created in the control. このプロパティを設定するには、独自の列を作成する場合は、falseを使用して、DataPropertyNameプロパティを構成するときに、各列をバインドします。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. これは、既定で生成される型以外の列の型を使用する場合に便利です。This is useful when you want to use a column type other than the types that are generated by default. 詳細については、次を参照してください。 Windows フォームの DataGridView コントロールの列型します。For more information, see Column Types in the Windows Forms DataGridView Control.

バインドされたを使用する例についてはDataGridViewコントロールを参照してくださいチュートリアル。フォームの DataGridView コントロールを Windows のデータの検証です。For an example that uses a bound DataGridView control, see Walkthrough: Validating Data in the Windows Forms DataGridView Control.

バインドされていない列を追加することも、DataGridViewバインド モードで制御します。You can also add unbound columns to a DataGridView control in bound mode. これは、特定の行に対して操作を実行するユーザーを有効にするボタンやリンクの列を表示する場合に便利です。This is useful when you want to display a column of buttons or links that enable users to perform actions on specific rows. バインドされた列から計算された値を持つ列を表示すると便利です。It is also useful to display columns with values calculated from bound columns. ハンドラーで計算列のセル値を設定することができます、CellFormattingイベント。You can populate the cell values for calculated columns in a handler for the CellFormatting event. 使用する場合、DataSetまたはDataTableデータ ソースとしてただしが使用する、DataColumn.Expression代わりに、計算列を作成するプロパティ。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. ここで、DataGridViewコントロールは、データ ソースの他の任意の列と同じように計算列を扱います。In this case, the DataGridView control will treat calculated column just like any other column in the data source.

バインド モードでバインドされていない列による並べ替えはサポートされていません。Sorting by unbound columns in bound mode is not supported. ユーザーが編集可能な値を含むバインド モードで非バインド列を作成する場合は、コントロールがバインドされた列で並べ替えられる場合は、これらの値を維持するために仮想モードを実装する必要があります。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.

仮想Virtual

仮想モードでは、独自のデータ管理操作を実装できます。With virtual mode, you can implement your own data management operations. これは、コントロールがバインドされた列で並べ替えられる場合は、バインド モードでバインドされていない列の値を維持するために必要です。This is necessary to maintain the values of unbound columns in bound mode when the control is sorted by bound columns. 仮想モードの主な用途は、ただし、大量のデータを操作するときにパフォーマンスを最適化するためにです。The primary use of virtual mode, however, is to optimize performance when interacting with large amounts of data.

アタッチする、DataGridViewにキャッシュを管理するにコントロールとデータ行のプッシュし、プルの場合、コードを制御します。You attach the DataGridView control to a cache that you manage, and your code controls when data rows are pushed and pulled. メモリ フット プリントを小さく保つには、キャッシュが現在表示されている行の数ほぼ同じサイズにする必要があります。To keep the memory footprint small, the cache should be similar in size to the number of rows currently displayed. ユーザーは、ビューに新しい行をスクロールするときに、コードはキャッシュから新しいデータを要求し、必要に応じて古いデータをメモリからフラッシュします。When the user scrolls new rows into view, your code requests new data from the cache and optionally flushes old data from memory.

仮想モードを実装するときは、新しい行が新しい行の追加をロールバックするときにデータ モデルを必要なときに追跡する必要があります。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. この機能の正確な実装は、データ モデルの実装と、データ モデルのトランザクション セマンティクスに依存します。コミットのスコープがセルまたは行レベルでかどうか。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.

仮想モードの詳細については、次を参照してください。 Windows フォームの DataGridView コントロールでの仮想モードします。For more information about virtual mode, see Virtual Mode in the Windows Forms DataGridView Control. 仮想モードのイベントを使用する方法を示しますたとえば、次を参照してください。チュートリアル。仮想モードの実装で、Windows フォーム DataGridView コントロールします。For an example that shows how to use virtual mode events, see Walkthrough: Implementing Virtual Mode in the Windows Forms DataGridView Control.

関連項目See also