Вы можете сгенерировать эту последовательность, используя sprintf
sprintf("%03d", 1:100)
#[1] "001" "002" "003" "004" "005" "006" "007" "008" "009" "010" "011" ... "098" "099" "100"
Найденный обходным решением. Сделанный классом
public class StubPropertyType
{
public StubPropertyType(Type type)
{
this.StubPropertyTypeName = type.Name;
}
public string StubPropertyTypeName = string.Empty;
}
созданный обязательный источник
this.propertyStubBindingSource.DataSource = typeof(StubPropertyType);
созданный экземпляр класса и связанный текстовое поле с ним.
this.nameTextBox.DataBindings.Add(
new System.Windows.Forms.Binding(
"Text",
this.propertyStubBindingSource,
"StubPropertyTypeName",
true));
работы точно как требуется.
Действительно, существует специальный режим Типа... этот подход используется в IDE и т.д. для конфигурирования метаданных заранее. Если Вы смотрите на сгенерированную IDE привязку, они делают вещи как:
bindingSource1.DataSource = typeof(MyObject);
высказывание, "когда мы получаем реальные данные, мы ожидаем MyObject isntance"; т.е. когда Вы просите "Имя", оно ищет свойство имени на MyObject - не Название экземпляра Типа. Это позволяет сеткам и т.д. получать свои метаданные, не имея необходимость ожидать реальных данных; но как следствие Вы не можете связать для Ввода "для реального".
Система. Код ComponentModel идентичен между простой привязкой и привязкой списка (плюс-минус менеджер по валюте), таким образом, простая привязка также наследовала это поведение. Аналогичным образом, Вы не можете связать со свойствами класса, который реализует IList/IListSource, так как это интерпретируется специальным способом.
Ваш дополнительный класс кажется разумным подходом.