繁体   English   中英

在属性网格,.net,winforms中编辑自定义只读集合时出现问题

[英]Problem editing custom readonly collection in property grid, .net, winforms

我有一个自定义集合,让我们说,COL是从ObjectModel.Collection派生的。

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

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

因此,我的问题是,CollectionEditor通过但我的集合编辑器失败了,这是对属性网格进行哪些检查?

UITypeEditor中没有太多要重写的内容,因此我担心关于CollectionEditor会进行一些硬编码。

干杯。

预计到达时间:

我已经回答了以下问题。

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

有人会以为样式只是用于……,那么,样式?

在反射器中查看时,会发生此问题,因为只有在样式设置为模式的情况下,才会发生对只读属性的其他检查(例如,检查它是否为引用类型-并启用按钮)。 嗯,很好。

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

因此,答案可能是“看看您的UI设计”。 您确定要使用下拉编辑器来编辑引用类型的内容吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM