Режимы отображения данных в элементе управления DataGridView в Windows Forms
Обновлен: Ноябрь 2007
Элемент управления DataGridView может отображать данные в трех разных режимах: в связанном, несвязанном и виртуальном. При выборе приемлемого метода следует исходить из конкретных потребностей.
Несвязанный режим
Несвязанный режим подходит для отображения относительно небольших объемов данных, управляемых программным образом. Элемент управления DataGridView не присоединяется напрямую к источнику данных в несвязанном режиме. Вместо этого элемент управления необходимо заполнить самостоятельно, что обычно делается при помощи метода DataGridViewRowCollection.Add.
Несвязанный режим может оказаться особенно полезным для статичных данных, предназначенных только для чтения, или когда для взаимодействия с внешнем хранилищем данных требуется собственный код. При этом, чтобы пользователи могли взаимодействовать с внешним хранилищем данных, как правило, используется связанный режим.
Пример, в котором используется несвязанный режим только для чтения DataGridView, см. в разделе Практическое руководство. Создание не связанного с данными элемента управления DataGridView в Windows Forms.
Связанный режим
Связанный режим подходит для управления данными посредством автоматического взаимодействия с хранилищем данных. Элемент управления DataGridView можно присоединить непосредственно к его источнику данных путем настройки свойства DataSource. Когда элемент управления привязан к данным, строки с данными передаются и принимаются без необходимости явного управления со стороны пользователя. Если свойство AutoGenerateColumns имеет значение true, каждый столбец в источнике данных будет вызывать создание соответствующего столбца в элементе управления. Если необходимо создать собственные столбцы, этому свойству можно присвоить значение false и использовать свойство DataPropertyName для привязки каждого столбца по мере его настройки. Это полезно, когда требуется использовать тип столбца, отличный от типов, создаваемых по умолчанию. Дополнительные сведения см. в разделе Типы столбцов элемента управления DataGridView в Windows Forms.
Пример с использованием связанного элемента управления DataGridView см. в разделе Пример. Проверка данных элемента управления DataGridView в Windows Forms.
Кроме того, несвязанные столбцы можно добавить в элемент управления DataGridView в связанном режиме. Это может оказаться полезным, когда требуется отобразить столбец с кнопками или ссылками, позволяющими пользователям выполнять действия с определенными строками. Кроме того, это может пригодиться для отображения столбцов со значениями, рассчитанными из связанных столбцов. Значения ячеек для рассчитанных столбцов можно заполнить в обработчике для события CellFormatting. Даже если в качестве источника данных используется DataSet или DataTable, может возникнуть необходимость использования свойства DataColumn.Expression для создания рассчитанного столбца. В этом случае, элемент управления DataGridView будет обращаться с рассчитанным столбцом, как с любым другим столбцом в источнике данных.
Сортировка по несвязанным столбцам в связанном режиме не поддерживается. Если создать связанный столбец, содержащий изменяемые пользователем значения, в несвязанном режиме, потребуется реализовать виртуальный режим для сохранения этих значений при сортировке элемента управления по связанному столбцу.
Виртуальный режим
Виртуальный режим позволит реализовать собственные операций по управлению данными. Этот режим необходим для сохранения значений несвязанных столбцов в связанном режиме при сортировке элемента управления по связанным столбцам. Однако виртуальный режим в большинстве случаев используется для оптимизации производительности при взаимодействии с большими объемами данных.
Элемент управления DataGridView присоединяется к управляемому кэшу, и код управляет отправкой и получением строк данных. Чтобы поддерживать небольшой объем памяти, размер кэша должен соответствовать количеству отображаемых строк. Когда пользователь прокручивает на экране новые строки, код запрашивает новые данные из кэша и может очистить память от старых данных.
При реализации виртуального режима необходимо отслеживать потребность в строке для добавления новых записей в соответствии с моделью данных, а также потребность в откате добавления строки. Конкретная реализация данных функциональных возможностей будет зависеть от реализации модели данных и соответствующей семантики транзакций модели данных, например, используется ли область фиксации на уровне ячеек или на уровне строк.
Дополнительные сведения о виртуальном режиме содержатся в разделе Виртуальный режим элемента управления DataGridView в Windows Forms. Пример, показывающий использование событий виртуального режима содержится в разделе Пример. Реализация виртуального режима для элемента управления DataGridView в Windows Forms.
См. также
Задачи
Пример. Создание не связанного с данными элемента управления DataGridView в Windows Forms
Практическое руководство. Привязка данных к элементу управления DataGridView в Windows Forms
Пример. Реализация виртуального режима для элемента управления DataGridView в Windows Forms
Основные понятия
Типы столбцов элемента управления DataGridView в Windows Forms
Виртуальный режим элемента управления DataGridView в Windows Forms
Ссылки
DataGridViewColumn.DataPropertyName
Другие ресурсы
Отображение данных с помощью элемента управления DataGridView в Windows Forms