1

我有一个自定义集合,可以说 COL,它源自 ObjectModel.Collection。

我有自己的集合编辑器,当 COL 类型的属性启用读写时,它可以正常工作。但是,如果我将属性更改为只读,则打开编辑器按钮将停止显示在属性网格中。

作为测试,我用 CollectionEditor 覆盖了我的自定义编辑器,效果很好。

所以,我的问题是,什么检查是属性网格,CollectionEditor 通过但我的集合编辑器失败?

UITypeEditor 中没有太多要覆盖的内容,所以我担心 CollectionEditor 会进行一些硬编码。

干杯。

预计到达时间:

我已经回答了下面的问题。

4

2 回答 2

0

我发现它为什么没有出现,它似乎是 PropertyGrid 中的一个错误。如果 EditStyle 设置为 Modal,则该按钮会出现,但如果设置为 DropDown,则不会出现。

有人会认为这些风格只是为了......,嗯,风格?

查看反射器,出现问题是因为只读属性的额外检查(例如检查它是否是引用类型 - 并启用按钮)仅在样式设置为模式时才会发生。嗯,不错。

于 2010-02-20T09:44:12.610 回答
0

我认为您在自己的答案中描述的行为不是错误,而是设计使然,坦率地说,这很合乎逻辑。查看下拉编辑器:它们为用户提供选择,因此结果是属性的新值(请参阅 ColorEditor、AnchorEditor、DockEditor、CursorEditor,...)。因此,该属性不能是只读的。模态编辑器更多的是编辑一个值(通常是引用类型),因此即使属性是只读的也可以使用。当然,这个也可以用来选择一个新的值(例如 FileNameEditor)。

所以也许答案是“看看你的 UI 设计”。您确定应该使用下拉编辑器来编辑引用类型的内容吗?

于 2010-02-20T12:38:23.877 回答