我正在使用属性网格来编辑项目集合,其中包括:
集合的默认行为提供了一个+按钮来编辑数组的每个成员。
我正在使用表单编辑此字段,该字段已经连线,但我想删除用户使用'expandder'编辑数组的功能
所以它看起来像这样:
UPDATE1:使ProductIds成为IList属性而不是int [] 现在这样做:
-----------------!
UPDATE2:使ProductIds成为自定义类,例如
MyWrappedCollection : IEnumerable<int>
所以它现在看起来像这样:
当然,它仍会显示[+]但它不会扩展到任何东西(即点击它时消失)
答案 0 :(得分:3)
控制属性是否可扩展的属性是TypeConverter。 ExpandableObjectConverter是一个内置类,它提供了扩展属性并查看它自己的能力。我猜测默认情况下,数组和集合使用此转换器来显示其中的内容。
您可以编写自己的TypeConverter,它不会从ExpandableObjectConverter继承并将其设置为属性上的属性以删除+。
答案 1 :(得分:0)
默认情况下,它使用[...]
方法。可能是您可以使用集合(例如List)而不是数组。
顺便问一下,你使用数组的具体原因是什么?
答案 2 :(得分:0)
您需要实现并应用UITypeEdtitor。见How to: Implement a UI Type Editor
覆盖UITypeEditor的 GetEditStyle 以返回模态