我正在为包含两个标签的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
,我不知道如何。
有人帮我解决问题吗?
提前致谢。
答案 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接口。