3

PropertyGridを使用して、ICustomTypeDescriptorの実装を通じて公開されるカスタムプロパティを表示しています。

私のオブジェクトはツリー構造でセットアップされ、各プロパティの値は各オブジェクトに設定されるか、親オブジェクトから継承されます。PropertyGridで、選択したオブジェクトに設定されているプロパティ値と、親オブジェクトから継承されているプロパティ値をユーザーに視覚的に表示したいと思います。

現在、すべてのプロパティに2つのカテゴリを表示しています。1つのセットは、実際のオブジェクトで値が設定されていることを示し、設定されていない場合は空白のフィールドが表示されます。もう1つのセットは、オブジェクトに設定されているか、オブジェクトに設定されていない場合は継承される、オブジェクトに割り当てられたプロパティ値を示します。

これらの2つのグループを1つの購入にまとめて、通常のテキストでセットプロパティを表示し、斜体のテキストで値を継承したいと思います。ただし、ICustomTypeDescriptor.GetProperties()を使用してこれを行う方法はないようです。また、PropertyGridのプロパティはプログラムの実行中に作成されるため、簡単にアクセスすることはできません。

4

1 に答える 1

3

斜体は使えませんが、太字は使えます。太字の動作はPropertyDescriptor'sによって決定されShouldSerializeValueます。さまざまなトリック ( 、または) を使用してPropertyDescriptors をラップし、独自の を提供できます。System.ComponentModelICustomTypeDescriptorTypeConverterTypeDescriptionProviderPropertyDescriptor

または、 VisualHintなど、より多くのオプションを備えた同様のグリッドがあります。そのページの「プロパティのカスタマイズ」を参照してください。

于 2009-04-13T19:21:10.533 に答える