【发布时间】:2012-03-27 04:18:46
【问题描述】:
像往常一样,我感觉好像遗漏了一些明显的东西,但我无法弄清楚这一点,也无法在网上找到任何东西(尽管我发现了一些几乎描述了我所追求的帖子) ,尽管我确信我正在尝试做的事情很常见。
假设我有一个列表:
public class Person
{
public int ID { get; set; }
public string Name { get; set; }
public List<string> Nicknames { get; set; }
}
并且只想绑定到 datagridview 并在组合框列中显示每个人的昵称。这是怎么做到的?我可以手动逐行加载它们,但不知道如何将它们分配为 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;
}
感谢您对此提出任何想法。我有一种感觉,当我回答这个问题时,我会想打自己的额头。
【问题讨论】:
标签: .net data-binding datagridview