У меня есть DataGridView в приложении С# WinForms, которое является DataBound во время выполнения (через Form_Load) для пользовательского объекта.
В представлении дизайна DataGridView у меня нет настроенных столбцов.
Когда Form загружает столбцы, они автоматически создаются на основе данных в пользовательском объекте, к которому относится DataBound.
Мой вопрос в том, как я могу управлять создаваемыми автоматически столбцами.
Например, если я хочу, чтобы один из столбцов был DataGridViewLinkColumn вместо DataGridViewTextBoxColumn, который автоматически создается?
По умолчанию столбцы основаны на типе данных. Я не проверял, но для ссылки вы можете попытаться разоблачить данные как Действительно, если вам нужен определенный тип столбца - добавьте столбцы через код и установите Uri
, но это может быть обнадеживающим.DataGridView.AutoGenerateColumns
на false
.
Как предполагает Эндрю; обычно для создания столбцов используется что-то вроде отражения, и вы получите столбец для каждого (доступного для просмотра + общедоступного + читаемого) свойства. Если вам нужно, есть слой абстракции, но это не поможет добавить столбец гиперссылки.
Вы можете предварительно создать свои столбцы в дизайнере. Если имя столбца совпадает с именем свойства, которому столкнулся столбец, привязка данных позаботится о вас, как и раньше, о DGV-популяции.