質問
私はICustomTypeDescriptorの実装を介して公開されているカスタムプロパティを表示するためにPropertyGridのを使用しています。
私のオブジェクトがツリー構造で設定され、各プロパティの値は、いずれかの各オブジェクトに設定するか、親オブジェクトから継承されます。 PropertyGridのでは私は視覚的な特性値は、選択したオブジェクトに設定されており、これは、親オブジェクトから継承されているかをユーザーに示したいと思います。
今私は、すべてのプロパティ、それ二つのカテゴリーを示しています。 1つのセットは、それが設定されていない場合、値は空白のフィールドで、実際のオブジェクトにに設定されているかを示しています。他のセットは、オブジェクトに設定されていない場合のいずれかのオブジェクトに設定され、又は継承されるオブジェクトに割り当てられたプロパティ値を示します。
私は、通常のテキストでセットの特性、およびイタリック体で継承した値を示す1つの買いにこれら2つのグループを組み合わせるしたいと思います。しかし、)(ICustomTypeDescriptor.GetPropertiesを通じてそれを行うにはどのような方法があるようには思えません。プログラムの実行中にそれらが作成されますので、私は、PropertyGridの特性に簡単にアクセスすることはできません。
解決
あなたはイタリックを行うことはできません - しかし、あなたは大胆行うことができます。大胆な行動をPropertyDescriptor
のShouldSerializeValue
によって決定されます。あなたは、様々なPropertyDescriptor
トリック(System.ComponentModel
、ICustomTypeDescriptor
またはTypeConverter
)を介してTypeDescriptionProvider
sをラップし、あなた自身のPropertyDescriptor
を提供することができます。
あるいは、 VisualHint によるような多くのオプションと同様のグリッドは、あります - そのページの「プロパティのカスタマイズ」を参照してください。
。