ТипDescriptor.CreateProperty не добавляет свойство

Я пытаюсь добавить свойство к типу, используя TypeDescriptor.CreateProperty, чтобы отобразить дополнительное свойство в сетке свойств, однако это новое свойство не добавляется, и когда я вызываю TypeDescriptor.GetProperties этого типа для проверки свойств, это свойство не существует.

Это что-то, что я могу пропустить или не заметить? Насколько я помню, это простой и простой сценарий.

Вот вызов: TypeDescriptor.CreateProperty (typeof (MovieMenuItem), «ExternalMediaLocation», typeof (string), null);

c#,data-binding,typedescriptor,system.componentmodel,

1

Ответов: 1


3 принят

CreatePropertyпросто возвращает вам отражение, основанное PropertyDescriptorна рассматриваемом типе (это не AddPropertyтак). Каков сценарий здесь? Если вам просто нужно отобразить дополнительные данные DataGridView, самым простым вариантом является просто добавить дополнительный разделительный столбец в сетку.

Вы можете расширять типы во время выполнения, но для списков вы имеете два основных варианта:

  • ITypedList(если каждый экземпляр списка может иметь разные столбцы) - см. этот ответ
  • TypeDescriptionProvider- позволяет добавлять пользовательские свойства для каждого типа (в конечном счете сводится к написанию PropertyDescriptor, как и в первом примере, - но разные крючки)

В этом ответе приведены полные правила использования метаданных на основе списка.

C #, связывания данных, TypeDescriptor, System.ComponentModel,
Похожие вопросы