Я использую пользовательские объекты для привязки к GridView.
Предположим, у меня есть коллекция автомобильных компаний (Audi, Ford, BMW и т. Д.). Каждый объект компании имеет такие свойства, как идентификатор, имя, страна и т. Д.
У каждой компании также есть коллекция автомобилей. Каждый автомобиль имеет такие свойства, как идентификатор, модель, год и т. Д.
Я хочу связать эту информацию с GridView.
Итак, я получаю запрос о компаниях, и в первом объекте каждой коллекции автомобилей есть данные об одном автомобиле (объектная модель такая же, потому что в других сценариях мне нужно перечислить все автомобили компании).
Нет проблем, когда я связываю Gridview с коллекцией Companies. Я могу перечислить информацию о каждой компании и каждой машине, которую я хочу показать.
Проблема возникает, когда я хочу установить DataKeyNames. Я хочу установить его с помощью идентификатора каждого автомобиля (а не идентификатора каждой компании) для сравнения автомобилей.
Я пытался что-то вроде этого:
GridViewCompanies.DataSource = companies;
GridViewCompanies.DataKeyNames = new string[] { "Cars[0].Id" };
Но это не работает, оно говорит, что не содержит свойства с именем.
Есть ли способ установить его?
Я не хочу вместо этого связывать Gridview с коллекцией Cars, потому что если я сделаю это таким образом, я упущу информацию о каждой компании и мне тоже придется использовать ее свойства.
Большое спасибо.