Haz todo lo posible por entender el código bien previamente a adaptarlo a tu proyecto y si ttienes algo que aportar puedes comentarlo.
Solución:
Necesita dar el tipo de la columna. Si desea una columna de cuadro de texto, tendría que usar new DataGridViewTextBoxColumn()
. Digamos que quiere un cuadro de texto y un cuadro combinado, tendría lo siguiente:
además, está llamando al nombre de la primera columna una y otra vez.
DataGridViewColumn miejsce = new DataGridViewTextBoxColumn();
miejsce.DataPropertyName = "Miejsce";
miejsce.HeaderText = "Miejsce";
miejsce.Name = "miejsceCollumn";
Cambie lo siguiente por el nombre de pila.
DataGridViewColumn imie = new DataGridViewComboBoxColumn();
imie.DataPropertyName = "Imie";
imie.HeaderText = "Imię";
imie.Name = "imieCollumn"
Si las columnas de DataGridView se crean mediante programación, entonces la propiedad AutoGenerateColumns de DataGridView debe establecerse en false.
Mi código es un ejemplo de un DataGridView capaz de mostrar cualquier DataTable y funciona perfectamente de esta forma:
// Prepare the DataViewGrid
dataGridView1.Columns.Clear();
// Add each column to the grid according to the data table structure
for (int i = 0; i < dataTable.Columns.Count; i++)
DataGridViewColumn dataGridViewColumn = new DataGridViewColumn();
DataGridViewCell dataGridViewCell = new DataGridViewTextBoxCell();
dataGridViewColumn.DataPropertyName = dataTable.Columns[i].ColumnName;
dataGridViewColumn.HeaderText = dataTable.Columns[i].ColumnName;
dataGridViewColumn.CellTemplate = dataGridViewCell;
dataGridViewColumn.Name = dataTable.Columns[i].ColumnName;
dataGridView1.Columns.Add(dataGridViewColumn);
// Set the DataSource for the binding
bindingSource1.DataSource = dataTable;
// Prevent unwanted columns autogeneration
dataGridView1.AutoGenerateColumns = false;
// Provide the binding to the DataGridView
dataGridView1.DataSource = bindingSource1;
Solo necesitaba configurar el CellTemplate
de la columna para resolver el problema.
DataGridViewColumn c = new DataGridViewColumn();
c.Name = "ColumnName";
c.HeaderText = "DisplayText";
c.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
c.CellTemplate = new DataGridViewTextBoxCell();
dataGridView1.Columns.Add(c);
Si entiendes que te ha sido de provecho este artículo, te agradeceríamos que lo compartas con el resto desarrolladores de esta forma contrubuyes a dar difusión a nuestro contenido.