Я использую DataGridView, связывающий его источник данных со списком, и указываю свойства для каждого столбца.
Примером может быть:
DataGridViewTextBoxColumn colConcept = new DataGridViewTextBoxColumn();
DataGridViewCell cell4 = new DataGridViewTextBoxCell();
colConcept.CellTemplate = cell4;
colConcept.Name = "concept";
colConcept.HeaderText = "Concept";
colConcept.DataPropertyName = "Concept";
colConcept.Width = 200;
this.dataGridViewBills.Columns.Add(colConcept);
{... назначить другие столбцы ...}
И наконец
this.dataGridViewBills.DataSource=billslist; //billslist is List<Bill>
Очевидно, что у Class Bill есть свойство под названием Concept, а также одно свойство для каждого столбца.
Что ж, теперь моя проблема в том, что у Билла должен быть и Array / List / whatdynamicsizecontainer строк, называемых Years.
Давайте предположим, что у каждого Билла будет один и тот же Years.Count, но это известно только во время выполнения. Таким образом, я не могу указать такие свойства, как Bill.FirstYear, чтобы получить Bill.Years [0], Bill.SecondYear для получения Биллов .Годы [1] ... и т. Д. ... и привязать их к каждому столбцу.
Идея состоит в том, что теперь я хочу иметь сетку с динамическим числом столбцов (известной во время выполнения), и каждый столбец должен заполняться строкой из списка Bill.Years. Я могу сделать цикл для добавления столбцов в сетку во время выполнения в зависимости от Bill.Years.Count, но можно привязать их к каждой из строк, которые содержит список Bill.Years ???
Я не уверен, достаточно ли я ясен.
В идеале результат должен быть примерно таким: 2 счета в списке и 3 года для каждого счета:
--------------------------------------GRID HEADER-------------------------------
NAME CONCEPT YEAR1 YEAR2 YEAR3
--------------------------------------GRID VALUES-------------------------------
Bill1 Bill1.Concept Bill1.Years[0] Bill1.Years[1] Bill1.Years[2]
Bill2 Bill2.Concept Bill2.Years[0] Bill2.Years[1] Bill2.Years[2]
Я всегда могу забыть источник данных и написать каждую ячейку вручную, как раньше нравилось MSFlexGrid, но, если возможно, я бы хотел использовать возможности привязки DataGridView.
Есть идеи? Большое спасибо.