【问题标题】:How do I expose a combo box on a user control for databinding?如何在用户控件上公开组合框以进行数据绑定?
【发布时间】:2011-10-22 11:12:21
【问题描述】:

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

<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

【问题讨论】:

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


    【解决方案1】:

    我只是在这里猜测,但属性编辑器可能不知道如何处理 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
    

    【讨论】:

    • 谢谢 Cory,我会试一试 - 我认为这是正确的。
    • 明白了 :) 不错的科里 - 你是个传奇!我必须设置 displayname 和 valuename 字段以从数据源中选择正确的列,但这在用户控件本身中是微不足道的。
    • 我一直在寻找这个答案一个星期......我偶然发现了几十个问题......每个问题都指定了可浏览选项,或者 ilistsource 属性或可绑定属性......我现在刚刚尝试了你的代码,它可以工作..似乎我们都需要它们..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-21
    • 2011-05-09
    • 2015-04-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-28
    相关资源
    最近更新 更多