我有一个带有Collection属性的用户控件。
Public Class DbGrid
<Browsable(True), EditorBrowsable(EditorBrowsableState.Always),
DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)>
Public Property DbFields As DbFields
Get
If _DbFields Is Nothing Then
_DbFields = New DbFields
End If
Return _DbFields
End Get
Set(value As DbFields)
_DbFields = value
End Set
End Property
End Class
该集合的定义如下:
Public Class DbFields
Inherits ObjectModel.Collection(Of DbField)
End Class
Public Class DbField
Private _FieldId As String
''' <summary>
''' Field ID
''' </summary>
''' <returns></returns>
Public Property FieldId As String
Get
Return _FieldId
End Get
Set(value As String)
_FieldId = value
End Set
End Property
''... many more properties like this...''
End Class
问题是,在我添加一些项目后,设计人员会保存这样的代码:
DbField1.FieldId = "field_id"
New MyProjectName.DbFields().Add(DbField1)
应该是这样的:
DbField1.FieldId = "field_id"
DbGrid1.DbFields().Add(DbField1)
任何想法我做错了什么?