Как открыть поле со списком в пользовательском элементе управления для привязки данных? - PullRequest
1 голос
/ 08 августа 2011

Я создаю составной пользовательский элемент управления и пытаюсь выставить элементы управления как свойства, чтобы я мог привязать их к форме из формы, на которую я перетащил пользовательский элемент управления. Один из элементов управления, который я пытаюсь представить, - это поле со списком, и я не могу понять, как открыть этот список для дизайнера. Я пробую следующий код, который я собрал вместе из того, что я могу найти, но пока что не радует.

<Category("Data"), Bindable(True), _
Browsable(True), EditorBrowsable(EditorBrowsableState.Always), _
DesignerSerializationVisibility(DesignerSerializationVisibility.Visible), _
AttributeProvider(GetType(IListSource))> _
Public Property RollbackCombo As ComboBox
    Get
        Return cboRollBack
    End Get
    Set(value As ComboBox)
        cboRollBack = value
    End Set
End Property

Кто-нибудь может увидеть, что я делаю не так?

Просто, чтобы уточнить, я использую объявления свойств, подобные этой, для привязки к текстовым полям в составном элементе управления, и я пытаюсь добиться чего-то подобного для комбинированного списка, по крайней мере, источника данных.

<Category("Appearance"),
Bindable(True),
Browsable(True),
EditorBrowsable(EditorBrowsableState.Always),
DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)> _
Public Property Title As String
    Get
        Return TitleTextbox.Text
    End Get

    Set(value As String)
        TitleTextbox.Text = value
    End Set
End Property

1 Ответ

3 голосов
/ 08 августа 2011

Я просто догадываюсь здесь, но редактор свойств, вероятно, не знает, что делать со свойством типа ComboBox.

Вы пытались вместо этого выставить свойство DataSource ComboBox?

<Category("Data"), Bindable(True), _
Browsable(True), EditorBrowsable(EditorBrowsableState.Always), _
DesignerSerializationVisibility(DesignerSerializationVisibility.Visible), _
AttributeProvider(GetType(IListSource))> _
Public Property RollbackComboDataSource As Object
    Get
        Return cboRollBack.DataSource
    End Get
    Set(value As Object)
        cboRollBack.DataSource = value
    End Set
End Property
...