2013-02-24 102 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”属性(例如),因为它必须每个对象都保持唯一...