2013-04-11 68 views
0

我有一个列表PropertyGrid和一个数组。编辑数组/列表属性网格

当扩展器(+)打开阵列可以对它进行编辑,

但是当列表扩展打开不能编辑它。

他们有什么区别?

我看到了这样一个问题:

Modify default behaviour of PropertyGrid and TypeConverterAttribute

,为了防止编辑由膨胀开启数组列表。

为什么在数组中可以编辑,并且列表不能被编辑?

我该如何改变这种情况? (或不能?)

+0

答案在链接的问题...有一个不同的typeconverter用于阵列...检查哪一个...打开它在反射器看它是如何完成的...编写自己的列表 .. 。注册它...完成 – DarkSquirrel42 2013-04-11 06:20:15

+0

@ DarkSquirrel42,对于我的列表,我在'[TypeConverter(typeof(ExpandableObjectConverter))]''中使用了扩展器。你知道另一个可以帮助我的转换器吗? (在阵列中没有转换器,这是默认情况下) – 2013-04-11 06:29:18

+1

数组正是使用这个转换器...看起来像它不能处理列表...你可以继承/建立自己的... http://msdn.microsoft。 com/en-gb/library/ayybcxe5.aspx – DarkSquirrel42 2013-04-11 06:38:38

回答

0

我发现你为什么不能修改的原因,

因为在列表中的每个值是object你不能编辑它,

即使我把GetValue一个来自对象的价值。

我在扩展器的列表中打开了对象并在那里编辑。

-1

因为我的建议,最好使用List,因为List是自动实现的数组列表,它的大小比较灵活,我们需要为它分配它。了解更多 http://www.dotnetperls.com/list

+0

但是列表不能在属性网格的扩展器中编辑,你读过我的问题了吗? – 2013-04-11 08:23:26

+0

请尝试看看这里http://www.codeproject.com/Articles/4448/Customized-display-of-collection-data-in-a-Propert – 2013-04-11 09:02:31

+0

我用这个代码(见注释) – 2013-04-11 09:08:35