如何在用户控件上公开组合框以进行数据绑定?

时间:2011-08-08 14:42:01

标签: .net vb.net winforms data-binding attributes

我正在创建一个复合用户控件并尝试将控件公开为属性,以便我可以从我将用户控件放到的表单上对它们进行数据绑定。我试图揭露的控件之一是组合框,我似乎无法弄清楚如何将这个组合框暴露给设计师。我正在尝试下面的代码,我已经从我可以找到的文档中拼凑出来,但到目前为止还没有任何乐趣。

<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

谁能看到我做错了什么?

只是详细说明一下,我正在使用像这样的属性声明来绑定到复合控件上的文本框,我正在尝试为组合框实现类似的东西,至少是它的数据源。 / p>

<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 个答案:

答案 0 :(得分:3)

我只是在这里猜测,但属性编辑器可能不知道如何处理ComboBox类型的属性。

您是否尝试过暴露ComboBox的DataSource属性?

<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