Пытаюсь заполнить DataGridView в форме значениями из списка:
public partial class TeachDisciplines : Form
{
public class Discipline
{
public int Number { get; set; }
public string Name { get; set; }
public Discipline(int v1, string v2)
{
Number = v1;
Name = v2;
}
}
List<Discipline> disc = new List<Discipline>();
public TeachDisciplines()
{
InitializeComponent();
//DiscList.AutoGenerateColumns = true;
disc.Add(new Discipline(1, "Программная инженерия"));
disc.Add(new Discipline(2, "Математический анализ"));
DiscList.DataSource = disc;
}
}
Таблица заполняется пустыми строками. Список вроде бы не пустой. Свойства элементов списка тоже публичные. Что ему ещё не хватает?
Вам требуется установить колонкам имя своств из ваших моделей:
Для колонки № - DataPropertyName = "Number";
Для колонки Название - DataPropertyName = "Name";
public TeachDisciplines()
{
InitializeComponent();
//DiscList.AutoGenerateColumns = true;
DiscList.Columns[0].DataPropertyName = "Number";
DiscList.Columns[1].DataPropertyName = "Name";
disc.Add(new Discipline(1, "Программная инженерия"));
disc.Add(new Discipline(2, "Математический анализ"));
DiscList.DataSource = disc;
}
К слову, в настройках колонки в дизайнере есть соответствующий пункт для настройки привязки:
Подробнее про DataGridViewColumn.DataPropertyName
Сборка персонального компьютера от Artline: умный выбор для современных пользователей