You only have to add the ExpandableObjectConverter as TypeConverter to your class :
Imports System.ComponentModel
Public Class xColumnHeader
Inherits ColumnHeader
<DesignerSerializationVisibility(DesignerSerializationVisibility.Content)>
Public Property CP As New CollectionOfProperties
<TypeConverter(GetType(ExpandableObjectConverter))>
Public Class CollectionOfProperties
Public Property Property1 As Boolean
Public Property Property2 As String
Public Property Property3 As Integer
End Class
End Class
Additional :
You don't need the Browsable-Attribute at your Properties - each Property is normally allways 'browsable'. You only need this Attribute if you want that you Property is NOT browsable ...