我使用Text
这样简单地绑定了TextBox
DataTable
Dim dtbData As New DataTable
' populate table
Me.BindingSource.DataSource = dtbData
txtBox.DataBindings.Clear()
txtBox.DataBindings.Add(New Binding("Text", Me.BindingSource, "OrderNumber", True))
BindingNavigator1.BindingSource = Me.BindingSource
属性,如下所示:
List(Of CustomObject)
但是,我正在尝试将其更改为使用dtbData
。我只是使用List
填充DataSource
并将List
设置为DataTable
。我设置了一个断点,List
和Binding
都已填充。如果我注释掉将txtBox
添加到BindingNavigator
的行,那么Dim lstData As New List(Of CustomObject)
Dim dtbData As New DataTable
' populate table
For Each row As DataRow In dtbData.Rows
Dim obj As New CustomObject
obj.OrderNumber = CInt(row("OrderNumber"))
lstData.Add(obj)
Next
Me.BindingSource.DataSource = lstData
txtBox.DataBindings.Clear()
txtBox.DataBindings.Add(New Binding("Text", Me.BindingSource, "OrderNumber", True))
BindingNavigator1.BindingSource = Me.BindingSource
会按预期工作,但如果我不管它,则绑定不起作用。
以下是我尝试的内容:
DataTable
它似乎应该是一样的。 BindingSource
不是List(Of CustomObject)
,而是Me.BindingSource.Current
,所以我不确定是否必须采取不同的做法。绑定的属性名称仍然相同。我还在Binding
中尝试了CustomObject
,但这也无效。谁能告诉我我做错了什么?
Public Class CustomObject
Public OrderNumber As Integer
End Class
看起来像这样:
Try
修改
我在绑定周围添加了Catch
/ OrderNumber
块,我看到以下错误消息:
无法绑定到DataSource上的属性或列OrderNumber。参数名称:dataMember
我只是看不到绑定到DataTable
的{{1}}列或OrderNumber
的{{1}}属性之间的区别。
答案 0 :(得分:0)
我意识到问题所在。 OrderNumber
未定义为Property
的{{1}}。我把定义改为:
CustomObject
现在它允许我将Public Class CustomObject
Public Property OrderNumber As Integer
End Class
的{{1}}属性绑定到Text
的{{1}}属性。