In order for intellisense of collection items to be availible, the object type must exist in the same namespace as the control. So, while you can create a collection of Menu Items in your custom control and declaratively instantiate them, you won't get intellisense for the items unless you create your own in the namespace of your custom control.
Did you have any trouble using Generics for your item collection? I found it was very straight forward. Here's an example I put together.
Namespace mine
<ParseChildren(True, "items")> _
Public Class Class1
Inherits WebControl
Private _items As List(Of Item)
<PersistenceMode(PersistenceMode.InnerDefaultProperty)> _
Public Property items() As List(Of Item)
Get
Return _items
End Get
Set(ByVal value As List(Of Item))
_items = value
End Set
End Property
Protected Overrides Sub Render(ByVal writer As System.Web.UI.HtmlTextWriter)
For Each i As Item In items
writer.WriteLine(i.Value)
Next
End Sub
End Class
Public Class Item
Private v As String
Public Property Value() As String
Get
If v Is Nothing Then
Return String.Empty
End If
Return v
End Get
Set(ByVal value As String)
v = value
End Set
End Property
End Class
End Namespace
--
Danny
disclaimer: Information provided is 'as is' and conveys no warranties or guarantees.