更改 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
.
最后的属性是结构数组。我通过覆盖结构的 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
.