Чтобы привязать к представлению таблицы данных, источником данных должна быть коллекция:
public class Data : List<EclipseFileInfo> { }
public class EclipseFileInfo
{
private List<string> files;
private string alias;
public List<string> Files { get { return files; } set { files = value; } }
public string Alias { get { return alias; } set { alias = value; } }
}
Когда вы sh отобразите строку файлов [] в виде поля со списком в вашем представлении сетки, нам нужно вручную добавить поле со списком, а также вручную установить его источник данных. Мы можем выполнить первую часть в конструкторе формы:
public Form2()
{
InitializeComponent();
dataGridView1.DataBindingComplete += dataGridView1_DataBindingComplete;
DataGridViewComboBoxColumn comboboxColumn = new DataGridViewComboBoxColumn();
dataGridView1.Columns.Add(comboboxColumn);
Data data = new Data();
data.Add(new EclipseFileInfo() { Alias = "Some Namespace 1", Files = new List<string> { "File1", "File2" } });
data.Add(new EclipseFileInfo() { Alias = "Some Namespace 2", Files = new List<string> { "File3", "File4" } });
data.Add(new EclipseFileInfo() { Alias = "Some Namespace 2", Files = new List<string> { "File5", "File6" } });
dataGridView1.DataSource = data;
}
Затем вторая часть в обработчике события DataBindingComplete:
void dataGridView1_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
{
foreach (DataGridViewRow row in dataGridView1.Rows)
{
DataGridViewComboBoxCell cell = row.Cells[1] as DataGridViewComboBoxCell;
cell.DataSource = (row.DataBoundItem as EclipseFileInfo).Files;
}
}
Окончательное представление выглядит следующим образом:
![enter image description here](https://i.stack.imgur.com/GeP1M.png)