19

C# の PropertyGrid で使用できる属性のリストが見つかりません。どこで見つけられるか知っていますか?

ありがとう。

4

5 に答える 5

27

PropertyGrid に影響を与える属性は間接的です。興味深いコードは、PropertyDescriptor 実装を提供する TypeDescriptor です。ただし、これは ICustomTypeDescriptor または TypeDescriptionProvider によって却下されます。

ただし、デフォルトのルールを想定すると、主要な属性は次のようになります。

  • [DisplayName(...)]
  • [Description(...)]
  • [Category(...)]
  • [TypeConverter(...)]
  • [ReadOnly(...)]
  • [Browsable(...)]
  • [DefaultValue(...)]
  • [Editor(...)]

他にも、ShouldSerialize{name} メソッドや Reset{name} メソッドの存在など、パターンによって検出されるものがあります。

于 2013-02-24T11:43:41.540 に答える
4

私も追加します

RefreshPropertiesAttribute

NotifyParentPropertyAttribute

于 2013-11-11T10:03:27.227 に答える
0

「MergableAttribute」も追加します。複数のオブジェクトを選択した場合、プロパティ グリッドを使用してオブジェクトの「名前」プロパティを (たとえば) 変更できないようにする必要があるため、これはプロパティ グリッドが ID フィールドをグループ化するのを防ぐのに役立ちます。オブジェクトごとに一意のまま...

于 2016-01-05T12:49:24.883 に答える
0

WinForms PropertyGrid のプロパティを並べ替えるための優れたソリューションが見つからなかったため、これが使用しているソリューションです。

pgDetails.PropertySortChanged += (s, ea) =>
{
    if (pgDetails.PropertySort == PropertySort.CategorizedAlphabetical)
    {
        pgDetails.PropertySort = PropertySort.Categorized;
    }
};

pgDetails.PropertySort = PropertySort.Categorized;

これが機能する方法は、グリッドがクラス内のプロパティの宣言順序を維持することです。

于 2021-02-11T07:28:43.487 に答える