У меня есть следующие данные, которые я хочу отобразить в DataGridView:
DataEntry[] data = new[]{
new DataEntry(){Name = "A", Entries = new []{ "1", "2"}},
new DataEntry(){Name = "B", Entries = new []{ "1", "2", "3"}}};
«Имя» будет простым полем TextBox, а «Записи» - ComboBox, где элементы для выбора являются элементами в списке.
Таким образом, в этом примере будет 2 строки (ниже показано, как будет выглядеть сетка данных):
Name Entries
Row1 : A <choice of "1" or "2">
Row1 : B <choice of "1" or "2" or "3">
Мой вопрос: как мне связать эти данные ?! Я посмотрел на свойства DataPropertyName, DisplayMember и ValueMember ... но просто не могу разобраться с этим.
Ниже приведен код в его нынешнем виде - с комментарием, в котором мне нужно добавить волшебную пару строк для установки источника данных и т. Д. Для столбца Записи.
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; }
}