2013-04-11 79 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