C# の PropertyGrid で使用できる属性のリストが見つかりません。どこで見つけられるか知っていますか?
ありがとう。
PropertyGrid に影響を与える属性は間接的です。興味深いコードは、PropertyDescriptor 実装を提供する TypeDescriptor です。ただし、これは ICustomTypeDescriptor または TypeDescriptionProvider によって却下されます。
ただし、デフォルトのルールを想定すると、主要な属性は次のようになります。
[DisplayName(...)]
[Description(...)]
[Category(...)]
[TypeConverter(...)]
[ReadOnly(...)]
[Browsable(...)]
[DefaultValue(...)]
[Editor(...)]
他にも、ShouldSerialize{name} メソッドや Reset{name} メソッドの存在など、パターンによって検出されるものがあります。
私も追加します
RefreshPropertiesAttribute
NotifyParentPropertyAttribute
「MergableAttribute」も追加します。複数のオブジェクトを選択した場合、プロパティ グリッドを使用してオブジェクトの「名前」プロパティを (たとえば) 変更できないようにする必要があるため、これはプロパティ グリッドが ID フィールドをグループ化するのを防ぐのに役立ちます。オブジェクトごとに一意のまま...
WinForms PropertyGrid のプロパティを並べ替えるための優れたソリューションが見つからなかったため、これが使用しているソリューションです。
pgDetails.PropertySortChanged += (s, ea) =>
{
if (pgDetails.PropertySort == PropertySort.CategorizedAlphabetical)
{
pgDetails.PropertySort = PropertySort.Categorized;
}
};
pgDetails.PropertySort = PropertySort.Categorized;
これが機能する方法は、グリッドがクラス内のプロパティの宣言順序を維持することです。