我在 Windows 窗体上有一个 datagridview。我有一个在运行时创建的绑定源和数据表,我打算用它们来绑定和保持我的 datagridview 更新。
调试时,我看到我的数据表正在填充行。当您打开可视化工具时,我还可以看到我的 bindingsource 的数据源有数据。
我的问题是我的 datagridview 保持空白,并且似乎从未获得我的数据表和绑定源正在获取的任何数据。
代码示例:
Private bs1 As New BindingSource
Private TraysToScanDatatable As New DataTable
在我的构造函数中
TraysToScanDatatable.Columns.Add(New DataColumn("time", GetType(DateTime)))
TraysToScanDatatable.Columns.Add(New DataColumn("scanner", GetType(Integer)))
TraysToScanDatatable.Columns.Add(New DataColumn("traynumber", GetType(Integer)))
bs1.DataSource = TraysToScanDatatable
UpdateDataGridView(TraysToReadDataGridView, bs1.DataSource) 'if I do not set my datagridview with a delegate here then I cannot update the binding source in the timer.
更新定时器逻辑
TraysToScanDatatable.Rows.Add(New Object() {DateTime.Now, 1, lastScanner1TrayReceived})
Me.bs1.DataSource = TraysToScanDatatable
me.bs1.MoveLast
和我的 updatedatagridview 例程
Public Sub UpdateDataGridView(ByVal control As DataGridView, ByVal newdata As DataTable)
If Not control.InvokeRequired Then
control.DataSource = newdata
Else
Invoke(New Action(Of DataGridView, DataTable)(AddressOf UpdateDataGridView), control, newdata)
End If
End Sub