¿Cómo configuro un DataGridView ComboBoxColumn con un DataSource diferente en cada celda?

Estoy configurando unDataGridViewComboBoxColumn Me gusta esto:

var newColumn = new DataGridViewComboBoxColumn() {
    Name = "abc"
};
newColumn.DataSource = new string[] { "a", "b", "c" }; 
dgv.Columns.Add(newColumn);

Esto funciona: cada fila tiene un cuadro desplegable en esa columna, rellenado con a, b, c.

Sin embargo, ahora me gustaría recortar la lista para ciertas filas. Estoy tratando de establecer la lista por fila de esta manera:

foreach (DataGridViewRow row in dgv.Rows) {
    var cell = (DataGridViewComboBoxCell)(row.Cells["abc"]);        
    cell.DataSource = new string[] { "a", "c" };                        
}

Sin embargo, este código no tiene ningún efecto: cada fila muestra "a", "b", "c".

He intentado reemplazarnew string[] connew List<string> ynew BindingList<string>, ambos en vano.

También he intentado quitar el código que establecenewColumn.DataSource, pero entonces las listas estan vacias.

¿Cómo debo hacer para hacer esto correctamente?

Respuestas a la pregunta(2)

Su respuesta a la pregunta