Pergunta

Eu estou usando um PropertyGrid para mostrar as propriedades personalizadas que são expostos através da implementação de ICustomTypeDescriptor.

Os meus objetos são configurados em uma estrutura de árvore e os valores para cada propriedade ou são definidos em cada objeto ou herdada de objetos pai. No PropertyGrid Quero mostrar visualmente o usuário que valores propriedades são definidas no objeto selecionado, e que são herdadas de objetos pai.

Agora eu estou mostrando cada propriedade o duas categorias. Um conjunto mostra o que o valor é definido como no objeto real, com um campo em branco se não definido. Os outros shows definir os valores de propriedade atribuído ao objeto que, ou são definidas no objeto, ou herdado se não for definido no objeto.

Gostaria de combinar estes dois grupos em um comprar propriedades da aparelhagem em texto normal, e os valores herdados em texto em itálico. No entanto, não parece haver nenhuma maneira de fazer isso através ICustomTypeDescriptor.GetProperties (). E eu não tenho acesso fácil às propriedades do PropertyGrid uma vez que eles são criados enquanto o programa está em execução.

Foi útil?

Solução

Você não pode fazer itálico - mas você pode fazer bold; o comportamento ousado é determinada por PropertyDescriptor do ShouldSerializeValue; você pode envolver PropertyDescriptors através de vários truques System.ComponentModel (ICustomTypeDescriptor, TypeConverter ou TypeDescriptionProvider) e fornecer seu próprio PropertyDescriptor.

Como alternativa, existem grades semelhantes com mais opções, como por VisualHint -. ver "personalização Property" na página

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top