プロパティグリッドのカスタムフィールドに類似値を表示するにはどうすればよいですか?
-
03-07-2019 - |
質問
フォーム上のすべてのコントロールを管理するのに役立つプロパティグリッドがあります。これらのコントロールはデザイナータイプのユーザー向けであるため、ユーザーインターフェースについてはそれほど心配していません...誰かが複数のオブジェクトを選択するまでは。
" BottomDiameter"のUITypeEditorがあります。これらの共通オブジェクトのプロパティ。単位(メートル対フィート)を追跡し、オンザフライでいくつかの素晴らしいことを行います。ただし、誰かが2つまたは3つの共通オブジェクトを選択すると、同じテキスト文字列に評価されるにもかかわらず、BottomDiameterは空白になります。
空白である理由(と思う)は、実際には3つの別個のobjDiameterオブジェクトであるためです。プロパティグリッドに他のすべてのプロパティと同様に動作し、同じ文字列に評価される場合に値を表示するにはどうすればよいですか?
UPDATE:たとえば、" Anchor&quot ;;プロパティのテキスト出力は" Top、Right"です。しかし、それをプルダウンすると、オブジェクトになります。ただし、フォーム上ですべて同じアンカー設定を持つ5つのオブジェクトを選択すると、文字列「Top、Right」が引き続き表示されます。プロパティグリッドで。
解決
BottomDiameterが単純なプリミティブではなくクラスである場合、このクラスのEqualsメソッドをオーバーライドする必要があります。
他のヒント
BottomDiameterプロパティに起因するDatatypeのTypeConvertorでは、選択されたBottomDiameterの配列またはリストを取得する、たとえばBottomDiameterVistorというクラスのようなvistorを作成できます。 BottomDiameterVistorのto文字列プロパティをオーバーライドして、プロパティの集計テキスト値を返します。