Курсивный текст в PropertyGrid - PullRequest
3 голосов
/ 13 апреля 2009

Я использую PropertyGrid, чтобы показать пользовательские свойства, предоставляемые посредством реализации ICustomTypeDescriptor.

Мои объекты настроены в виде древовидной структуры, и значения для каждого свойства либо задаются в каждом объекте, либо наследуются от родительских объектов. В PropertyGrid я хочу визуально показать пользователю, какие значения свойств установлены в выбранном объекте, а какие наследуются от родительских объектов.

Прямо сейчас я показываю каждому свойству две категории. Один набор показывает, какое значение установлено в реальном объекте, с пустым полем, если оно не установлено. Другой набор показывает значения свойств, назначенные объекту, которые либо установлены в объекте, либо унаследованы, если не установлены в объекте.

Я хотел бы объединить эти две группы в одну покупку, показывая установленные свойства в обычном тексте и унаследованные значения в тексте курсивом. Тем не менее, кажется, нет никакого способа сделать это через ICustomTypeDescriptor.GetProperties (). И у меня нет легкого доступа к свойствам PropertyGrid, поскольку они создаются во время работы программы.

1 Ответ

3 голосов
/ 13 апреля 2009

Вы не можете сделать курсивом - но вы можете сделать жирным шрифтом; смелое поведение определяется PropertyDescriptor 's ShouldSerializeValue; Вы можете обернуть PropertyDescriptor s с помощью различных System.ComponentModel трюков (ICustomTypeDescriptor, TypeConverter или TypeDescriptionProvider) и предоставить свои PropertyDescriptor.

Кроме того, существуют аналогичные сетки с большим количеством параметров, например от VisualHint - см. «Настройка свойств» на этой странице.

...