2013-02-24 103 views
13

我找不到C#中PropertyGrid的可用屬性的任何列表,您知道我在哪裏可以找到它嗎?PropertyGrid屬性列表

謝謝。

+0

嗯。你認爲房產清單是什麼? – Oded 2013-02-24 11:33:31

+0

通過屬性,我的意思是你放在你的屬性頂部,例如,顯示一個不同的名稱,或把它們放在屬性網格中的一個類別:) 像這樣:[CategoryAttribute(「ID Settings」), DescriptionAttribute(「客戶的社會安全號碼」)] – Phito 2013-02-24 11:35:50

+1

http://msdn.microsoft.com/en-us/library/system.componentmodel.aspx – 2013-02-24 11:37:32

回答

18

影響PropertyGrid的屬性是間接的:有趣的代碼是提供PropertyDescriptor實現的TypeDescriptor。但是,這個麪包車會被ICustomTypeDescriptor或TypeDescriptionProvider推翻。

然而,如果我們假設默認規則,在比賽的關鍵屬性是:

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

其他一些東西通過圖案諸如ShouldSerialize {名稱}的存在或重置{名稱}方法檢測。

+0

編輯器對於屬性網格也很重要。 – 2013-02-25 06:35:54

+0

@Simon我肯定會錯過一個......謝謝 – 2013-02-25 07:06:07

+0

我還會加 RefreshPropertiesAttribute NotifyParentPropertyAttribute – 2013-11-11 10:02:36

4

我還要補充

RefreshPropertiesAttribute

NotifyParentPropertyAttribute

+0

NotifyParentPropertyAttribute - 正是我在找的東西!謝謝! – NightElfik 2014-04-10 23:13:50

0

我還要補充 「MergableAttribute」。這對阻止屬性網格對標識字段進行分組非常有用,因爲如果選擇多個對象,則不希望能夠使用屬性網格修改對象的「Name」屬性(例如),因爲它必須每個對象都保持唯一...