Для функции GetListType
см. этот ответ . Чтобы получить свойства списка для привязки данных , вам действительно нужно использовать компонентную модель (для совместимости) - т.е.
PropertyDescriptorCollection props = TypeDescriptor.GetProperties(type);
Затем посмотрите на каждый PropertyDescriptor
, используя GetValue
/ Converter
и т. Д. Код вашего списка, как правило, должен работать против неуниверсального IList
; что-то вроде:
IList list = ...
object obj = list[rowIndex];
// then for any given "prop"
object val = prop.GetValue(obj);
string displayText = prop.Converter.ConvertToString(val);
Однако, если вы хотите быть «завершенным», вам также нужно взглянуть на IListSource
и ITypedList