Не знаю, полезно ли это, но я создал тестовый проект для этого. Тестовый проект выполняется без проблем.
Сначала я объявляю тестовый класс:
public class Instrument
{
public string Id { get; set; }
public string Name { get; set; }
public string Property1 { get; set; }
public string Property2 { get; set; }
}
У меня есть функция getInstruments, которая возвращает список.
Затем я привязываю это к листу, используя этот код:
List<Instrument> list = getInstruments();
ListObject instrumentsTable = Controls.AddListObject(Range["A1", "B4"], "list1");
string[] mappedColumns = { "Name", "Property1" };
instrumentsTable.SetDataBinding(list, string.Empty, mappedColumns);
Отображается лист с 4 инструментами, на котором в столбцах A и B указаны Имя и Свойство1.
Я также попробовал это с помощью Entity Framework, подключив лист к одной из моих баз данных, и не столкнулся с какими-либо проблемами.
Если у вас все еще есть проблемы, пожалуйста, предоставьте больше информации об исключении, которое вы получаете при использовании SetDataBinding.