d.allen101 Ответов: 1

как привязать отдельные столбцы в dataGridView


У меня есть winForm с dataGridView, который имеет 5 столбцов текстового поля и один столбец combobox. Я успешно привязал combobox к моему объекту bindingSource, теперь я хотел бы привязать два других столбца к моему объекту bindingSource.

Как мне связать отдельные столбцы? Кажется, я не могу понять, как привязать отдельные столбцы текстового поля к моему bindingSource.

1 Ответов

Рейтинг:
12

VJ Reddy

DataSource собственность компании DataGridView
и DataPropertyName от DataGridViewColumn как объяснено здесь
http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridviewcolumn.datapropertyname.aspx[^]
может быть использован для этой цели.

Перед установкой DataSource собственность компании DataGridView то AutoGenerateColumns свойство должно быть установлено в false чтобы избежать этого DataGridView заселение города Columns автоматически.

dataGridView1.AutoGenerateColumns = false;


d.allen101

не работать. я уже пробовал традиционный подход и по какой то причине как только моя форма загружается она генерирует 3 строки

d.allen101

как я могу привязать разные столбцы к разным источникам данных?

VJ Reddy

Насколько я знаю, мы не можем связать различные источники данных в одном DataGridView. Причина заключается в том, что свойство DataSource доступно на уровне DataGridView, а это означает, что для каждого DataGridView может быть установлен только один источник данных. Затем свойство DataPropertyName DataGridViewColumn можно использовать для назначения определенного поля источника данных DataGridViewColumn.

d.allen101

как я могу остановить связанный dataGridView от добавления строк после его загрузки? я привязал его к своему bindingSource и указал столбец, к которому я хочу привязаться через DataPropertyName dataGrid colunmn, но когда форма загружается, она автоматически создает пустую строку 3. я также установил AllowUserToAddRows = false. не уверен, что это имеет значение

VJ Reddy

Я не думаю, что пустые строки будут добавлены автоматически. Только одна пустая строка будет показана для добавления новой строки, Если AllowUserToAddRows = true.
Пожалуйста, проверьте свой DataTable, который подключен через BindingSource. Он может иметь пустые строки. В этом случае строки будут показаны в DataGridView.

d.allen101

спасибо...да, мой источник данных заполнен. большое спасибо ви джей

VJ Reddy

Добро пожаловать и спасибо за ответ.
Если решение и/или обсуждение окажутся полезными, то вы можете проголосовать и принять это решение.

d.allen101

почему это не работает? dataGridView.DataBindings.Add("col1",bindingSrc,"Name")
dataGridView.DataBindings.Add("col2",bindingSrc,"addr")
dataGridView.DataBindings.Add("col3",bindingSrc, "State") и т. д...

VJ Reddy

Я не пробовал, но думаю, что свойство DataBindings можно использовать для привязки свойства элемента управления say Text property of TextBox к источнику данных. В этом случае столбец col1-это не свойство элемента управления datagridview. Скорее всего, это член коллекции столбцов DataGridView.
Чтобы узнать, работает ли это или нет, попробуйте дать шляпу выше утверждений и посмотреть, что произойдет.