Formato condicional de DataGridView

Tengo un DataGridView. Configuré su .DataSource prop para que sea un BindingList de mis propios objetos: una BindingList

Luego creé algunas columnas para eso.

  DataGridViewTextBoxColumn descColumn = new DataGridViewTextBoxColumn(); descColumn.DataPropertyName = "Description"; descColumn.HeaderText = "Description"; descColumn.Width = 300; DataGridViewTextBoxColumn gameIDColumn = new DataGridViewTextBoxColumn(); gameIDColumn.DataPropertyName = "GameID"; gameIDColumn.HeaderText = "Game ID"; gameIDColumn.Width = 60; dataGrid.Columns.Add(descColumn); dataGrid.Columns.Add(gameIDColumn); 

Mi pregunta es … Quiero colorear una de las columnas VERDE sobre la base de datos en otro campo de mi lista de encuadernación). ¿Cómo puedo hacer esto?

Realmente no tengo que mostrar este campo, solo quiero actuar sobre la base de datos.

en mi caso, uno de los campos de IChessItem muestra si el registro es nuevo y quiero colorear los otros campos en la vista de cuadrícula de datos para reflejar eso.

Puede usar el evento ‘CellFormatting’ de DataGridView. DataGridViewCellFormattingEventArgs contiene índices de la fila y la columna de la celda actual a medida que se enlaza. Espero que mi ejemplo de código tenga algún sentido para ti:

 private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) { // Compare the column to the column you want to format if (this.dataGridView1.Columns[e.ColumnIndex].Name == "ColumnName") { //get the IChessitem you are currently binding, using the index of the current row to access the datasource IChessItem item = sourceList[e.RowIndex]; //check the condition if (item == condition) { e.CellStyle.BackColor = Color.Green; } } } 

Puede completar datos en su DataGridView utilizando cualquier bucle o fuente de datos. Luego, para cada DataGridViewRow en DataGridView1.Rows —-

Cambia el valor del ref ypu y luego establece la propiedad DataGridviewCell [index] .style.backColor.