Я пытаюсь настроить DataGridView для представления страницы из книги карт. Каждая ячейка в сетке представляет объект MapGrid. Пользователи будут использовать это, чтобы установить маршрут для MapGrids.
public class MapGrid
{
public int ID { get; set; }
public short PageNumber { get; set; }
public char ColumnNumber { get; set; }
public byte RowNumber { get; set; }
public RouteSummary Route { get; set; }
}
public class RouteSummary
{
public int ID { get; set; }
public byte RouteNumber { get; set; }
}
Мне интересно, могу ли я использовать привязку данных для привязки моего списка объектов MapGrid к сетке. Я хотел бы сделать что-то вроде этого:
List<MapGrid> mapGrids = GetMapGrids();
dataGridView.DataSource = mapGrids;
И я бы хотел, чтобы dataGridView отображал свойство MapGrid.RouteSummary.RouteNumber
.
Я подумал, что, может быть, мне удастся создать ILookup<byte, MapGrid>
для группировки MapGrids по строкам. Тогда, возможно, я мог бы связать это с DataGridView. Я не уверен, как бы я сказал, чтобы отобразить RouteNumber, хотя.
Если бы число столбцов было постоянным, я мог бы просто создать объект со свойством для каждого столбца и связать их список с DataGridView. Но, конечно, все не так просто. Количество столбцов не является постоянным. Поэтому я не понимаю, как это могло бы работать.
Есть идеи? Я пытаюсь сделать что-то за рамками привязки данных? Прямо сейчас я думаю, что мне придется вручную заполнить DataGridView объектами MapGrid и использовать событие CellValueChanged
для обновления содержимого.