Как обычно, я чувствую, что упускаю что-то очевидное, но я не могу понять это и не могу найти что-нибудь в Интернете (хотя я нашел несколько сообщений, которые ПОЧТИ описывают то, что я ищу) Хотя я уверен, что то, что я пытаюсь сделать, распространено.
Скажем, у меня есть список этих:
public class Person
{
public int ID { get; set; }
public string Name { get; set; }
public List<string> Nicknames { get; set; }
}
и просто хотите привязать к представлению данных и отобразить псевдонимы каждого человека в столбце комбинированного списка. Как это сделать? Я могу загрузить их вручную, строка за строкой, но не могу понять, как назначить их в качестве источника данных DGV.
Я пробовал подобные вещи без удачи:
private void CreateColumns()
{
BindingList<Person> people = GetAllPeople();
DataGridViewTextBoxColumn col = new DataGridViewTextBoxColumn();
col.HeaderText = "ID";
col.DataPropertyName = "ID";
dataGridView1.Columns.Add(col);
col = new DataGridViewTextBoxColumn();
col.HeaderText = "Name";
col.DataPropertyName = "Name";
dataGridView1.Columns.Add(col);
DataGridViewComboBoxColumn colCombo = new DataGridViewComboBoxColumn();
//colCombo.DataPropertyName = "Nicknames";
colCombo.DataSource = (from p in people select p.Nicknames.ToString()).ToList();
colCombo.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
colCombo.HeaderText = "Nicknames";
dataGridView1.Columns.Add(colCombo);
dataGridView1.DataSource = people;
}
Спасибо за любые идеи по этому поводу. У меня такое чувство, что я захочу ударить себя по лбу, когда на это ответят.