TypeDescriptor.CreateProperty не добавляет свойство - PullRequest
1 голос
/ 16 июня 2009

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

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

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

1 Ответ

3 голосов
/ 16 июня 2009

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

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

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

Полные правила получения метаданных на основе списка приведены в этом ответе

...