用户控件属性(集合元素)无法正确保存到设计器中

时间:2015-10-31 14:37:15

标签: vb.net collections user-controls visual-studio-2015

我有一个带有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)

任何想法我做错了什么?

0 个答案:

没有答案