Режимы отображения данных в элементе управления DataGridView в Windows FormsData Display Modes in the Windows Forms DataGridView Control

DataGridView Элемент управления может отображать данные в трех разных режимах: связанном, свободных и виртуальном.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, в разделе как: создание свободного элемента управления DataGridView Windows Forms.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. Дополнительные сведения см. в разделе типов столбцов в элементе управления DataGridView Windows Forms.For more information, see Column Types in the Windows Forms DataGridView Control.

Пример с использованием связанного DataGridView управления см. в разделе Пошаговое руководство: проверка данных в элементе управления DataGridView Windows Forms.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.

Дополнительные сведения о виртуальном режиме см. в разделе виртуальный режим в элементе управления DataGridView Windows Forms.For more information about virtual mode, see Virtual Mode in the Windows Forms DataGridView Control. Пример, показывающий, как использовать виртуальный режим события см. в разделе Пошаговое руководство: реализация виртуального режима в элементе управления DataGridView Windows Forms.For an example that shows how to use virtual mode events, see Walkthrough: Implementing Virtual Mode in the Windows Forms DataGridView Control.

См. такжеSee Also

DataGridView
DataGridView.DataSource
DataGridView.VirtualMode
BindingSource
DataGridViewColumn.DataPropertyName
Отображение данных с помощью элемента управления DataGridView в Windows FormsDisplaying Data in the Windows Forms DataGridView Control
Типы столбцов элемента управления DataGridView в Windows FormsColumn Types in the Windows Forms DataGridView Control
Пошаговое руководство. Создание не связанного с данными элемента управления DataGridView в Windows FormsWalkthrough: Creating an Unbound Windows Forms DataGridView Control
Практическое руководство. Привязка данных к элементу управления DataGridView в Windows FormsHow to: Bind Data to the Windows Forms DataGridView Control
Виртуальный режим элемента управления DataGridView в Windows FormsVirtual Mode in the Windows Forms DataGridView Control
Пошаговое руководство. Реализация виртуального режима для элемента управления DataGridView в Windows FormsWalkthrough: Implementing Virtual Mode in the Windows Forms DataGridView Control