Действительно, существует особый подход к типу ... этот подход используется в IDE и т. Д. Для предварительной настройки метаданных. Если вы посмотрите на сгенерированные IDE привязки, они делают что-то вроде:
bindingSource1.DataSource = typeof(MyObject);
говоря "когда мы получаем реальные данные, мы ожидаем, что MyObject isntance (s)"; то есть, когда вы запрашиваете «Имя», оно ищет свойство name в MyObject , а не имя экземпляра Type. Это позволяет сеткам и т. Д. Получать свои метаданные, не дожидаясь реальных данных; но, как следствие, вы не можете связываться с Типом «по-настоящему».
Код System.ComponentModel идентичен между простыми привязками и привязками списков (менеджер валют или обмен), поэтому простые привязки также наследуют это поведение. Точно так же вы не можете связать со свойствами класса, который реализует IList / IListSource, так как это интерпретируется особым образом.
Ваш дополнительный класс кажется разумным.