gpt4 book ai didi

c# - CollectionEditor 为 System.Drawing.Point 产生 "Object does not match target type."

转载 作者:太空狗 更新时间:2023-10-29 19:42:00 25 4
gpt4 key购买 nike

我有一个自定义控件,它的属性类型为 Collection<System.Drawing.Point> .当我使用 CollectionEditor要编辑此属性,CollectionEditor窗口显示"Object does not match target type."对于 "X""Y"特性。但是如果我使用 System.Drawing.PointF相反,没有失败。

谁能解释为什么会出现这种差异?

最佳答案

Point 和 PointF 之间的区别确实在于 PointConverter。为什么这会导致问题是一个很长的故事,但归根结底可以归结为以下几点:

System.ComponentModel.ICustomTypeDescriptor.GetPropertyOwner(PropertyDescriptor)System.ComponentModel.Design.CollectionEditor 中的实现
.CollectionEditorCollectionForm.SelectionWrapper
只是返回 this

根据ICustomTypeDescriptor接口(interface)的上述方法的MSDN页面,一个实现应该

Return(s) an object that contains the property described by the specified property descriptor.

如果我理解正确,在这种情况下,实现与文档相矛盾。

这是基于我自己的一些研究,所以不要想当然。我在 Microsoft Connect 上发布了关于此问题的报告,因此希望我们能在几天内确定。收到答复后我会报告。

关于c# - CollectionEditor 为 System.Drawing.Point 产生 "Object does not match target type.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2597737/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com