,我有以下的数据我想在一个DataGridView显示:绑定不同的条目的DataGridViewComboBoxCell
DataEntry[] data = new[]{
new DataEntry(){Name = "A", Entries = new []{ "1", "2"}},
new DataEntry(){Name = "B", Entries = new []{ "1", "2", "3"}}};
“名称”将是一个简单的文本框字段,“项”组合框,其中可供选择的项目是列表中的元素。
因此,在这个例子中会有2行(下面是在DataGridView会是什么样子):
Name Entries
Row1 : A <choice of "1" or "2">
Row1 : B <choice of "1" or "2" or "3">
我的问题是,我怎么绑定这个数据?我已经看了DataPropertyName,DisplayMember和ValueMember属性......但是不能完成这一项。
下面是代码 - 它带有一个注释,我需要添加一些神奇的行来为Entries列设置DataSource等。
public partial class Form1 : Form
{
DataEntry[] data = new[]{
new DataEntry(){Name = "A", Entries = new []{ "1", "2"}},
new DataEntry(){Name = "B", Entries = new []{ "1", "2", "3"}}};
public Form1()
{
InitializeComponent();
dataGridView1.AutoGenerateColumns = false;
var nameCol = new DataGridViewTextBoxColumn();
nameCol.DataPropertyName = "Name";
var entriesCol = new DataGridViewComboBoxColumn();
//entriesCol. ???? = "Entries"; !!
dataGridView1.Columns.AddRange(new DataGridViewColumn[] { nameCol, entriesCol });
dataGridView1.DataSource = data;
}
}
public class DataEntry
{
public string Name { get; set; }
public IEnumerable<string> Entries { get; set; }
}