更改 PropertyGrid 中数组的表示

Change representation of array in PropertyGrid

最后的属性是结构数组。我通过覆盖结构的 ToString 实现了正确的表示,但是不可能覆盖数组的 ToString 。我尝试使用 TypeConverter 它有效,但 属性 变得不可扩展。

这是TypeConverter:

Public Class StringViewArrayViewConverter
    Inherits CollectionConverter

#Region "Public Methods"

    Public Overrides Function ConvertTo(context As ITypeDescriptorContext,
                                                    culture As CultureInfo,
                                                    value As Object,
                                                    destinationType As Type) As Object
        If TypeOf value Is dpStringView() AndAlso destinationType.Equals(GetType(String)) Then
            Return FormatNumber(CType(value, dpStringView()).Length, 0)
        Else
            Return String.Empty
        End If
    End Function

#End Region

End Class

接下来用到的方法:

<Category(CategoryInfo)>
<DisplayName("Придатний")>
<TypeConverter(GetType(StringViewArrayViewConverter))>
Public ReadOnly Property SuitabilityDescription As dpStringView()
    Get
        Return Array.ConvertAll(Suitability, Function(i) New dpStringView(GetEnumDescription(i)))
    End Get
End Property

下一张图片说明 PropertyGrid 没有 TypeConverter

是否可以用其内容的一些简短结论(例如“1 条消息,展开以查看详细信息”)替换 dpStrinViev[] Array 并保留 属性 可展开?

感谢 VB.NET 或 C#

中的任何建议或示例

我发现我的错误:我的 TypeConverter 继承了 CollectionConverter 而不是 ArrayConverter.