这不是很简单的标题说,但我希望你能理解。

考虑这种情况:

Class MyClass

    Property SubProp1
    End Property

    -TypeEditor(whatever)- 
    Property SubProp2
    End Property

End Class

Class MyButton
    Inherits Button

    -MyCustomAttribute-
    Property MC as MyClass
    End Property

End Class

接着,我把myButton的实例为属性网格中,展开属性MC和编辑SubProp2。

这对于SubProp2类型编辑,我想获得施加到属性MC的属性的保持状态。

看上下文,PropertyDescriptor.ComponentType,我们到达类型:MyClass的。 如果我看一下属性应用到MyClass的,但是,它只会返回属性直接应用到MyClass的,而不是额外的属性应用到物业MC。

我挣扎找回MC这样我就可以读取属性在那里应用。 任何人任何想法?

ETA:

我已经回答它下面:

有帮助吗?

解决方案 2

其实,继我托马斯评论,这是可能有后期绑定。方法如下:

DirectCast(context, GridItem).Parent.PropertyDescriptor.Attributes.

瞧!

其他提示

  

如果我看的属性应用到MyClass的,但是,它只会返回的属性直接施加到MyClass的,而不是额外的属性应用到属性MC。

添加到MC属性的属性不是“添加”到属性应用到MyClass类...属性是静态的元数据,你会不会有MyClass一个额外的属性,只是因为类型MyClass的酒店有这属性。有两者之间没有关系。

有没有办法让MyClass的检索MC属性的特性,除非你直接从MyButton类检索它们,通过反思:

Dim prop As PropertyInfo = GetType(MyButton).GetProperty("MC")
Dim attributes As Attribute() = Attribute.GetCustomAttributes(prop)

但是,你将不能够检索使用TypeDescriptor那些属性,因为它只能给你的类型定义的属性,而不是在属性

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top