winform usercontrol上标签的数据绑定

时间:2013-04-24 03:36:49

标签: c# vb.net winforms data-binding user-controls

我正在为包含两个标签的winform应用创建一个usercontrol,一个作为标题,另一个需要通过Me.usercontrol1.databindings.add()绑定到数据源。我是用户控件设计的新手所以我在网上搜索了如何为我的控件制作数据绑定。我意识到我需要使用ControlBindingsCollection,但我不确切知道如何。

我找到了以下代码并添加到我的usercontrol中:

Private bindingContext_ As BindingContext
Private dataBindings_ As ControlBindingsCollection
Public Overrides Property BindingContext() As BindingContext
    Get
        If bindingContext_ Is Nothing Then
            bindingContext_ = New BindingContext()
        End If
        Return bindingContext_
    End Get
    Set(ByVal value As BindingContext)
        bindingContext_ = value
    End Set
End Property
<DesignerSerializationVisibility(DesignerSerializationVisibility.Content)> _
Public Overloads ReadOnly Property DataBindings() As ControlBindingsCollection
    Get
        If dataBindings_ Is Nothing Then
            dataBindings_ = New ControlBindingsCollection(Me)
        End If
        Return dataBindings_
    End Get
End Property

现在我可以设置usercontrol1.databindings参数,但显然缺少一些东西,因为我需要在我的usercontrol中将此绑定中的单个返回值连接到label2.Text,我不知道如何。

有人帮我解决问题吗?

提前致谢。

1 个答案:

答案 0 :(得分:1)

我认为您不需要问题中的代码来完成这项工作。

尝试在UserControl中创建一个使用第二个标签的属性:

Property LabelData As String
  Get
    Return Label2.Text
  End Get
  Set(value As String)
    Label2.Text = value
  End Set
End Property

然后您的数据绑定只映射到该属性:

myUC.DataBindings.Add("LabelData", testObject, "Text", False, _
                      DataSourceUpdateMode.OnPropertyChanged)

testObject只是一个简单的类对象,在这个例子中有一个Text属性,它实现了INotifyPropertyChanged接口。