VB.Net DataGridView BindingSource和Structure Array没有更新

时间:2012-06-19 16:15:35

标签: vb.net arrays datagridview structure bindingsource

我遇到了一些问题,并在一些简化的代码中进行了解释

我有一个结构

Public Structure myStruct
    Public Property name As String
    Public Property span As Double
    Public Property offs As Double
End Structure

在Singleton对象中实例化,如下所示

Public myValues(10) As myStruct

然后在表单上,​​我将结构用作SourceBinder的DataSource,将绑定器用作DataGridView的DataSource。

在加载表单时,我将所有值都放入绑定器

    For i As Integer = 0 To 9
        binder.Add(singleton.getRef.myValues(i))
    Next i

所有值都显示在网格上。

用户应该能够更改值,这应该反映在myValues上,但无论我在CellValueChanged或CurrentChanged上放了什么代码。我无法反映这些变化。

在这些事件上使用断点,我注意到grid.row()。cell()。values和binder.current永远不会改变。

我还尝试放置一个按钮并直接更改myValues并重置绑定binder.ResetBindings(False),但没有任何反应。

据我所见,所有ReadOnly属性都设置为false。

我还尝试在网格上将VirtualMode设置为true并捕获CellValuePushed和CellValueNeeded事件,但这些事件从未被调用过。 (那是在猜测基础上)

如果有人能帮助我的话,我真的没有关于这个的想法!

感谢。

1 个答案:

答案 0 :(得分:2)

尝试使用类:

Public Class myStruct
  Public Property name As String
  Public Property span As Double
  Public Property offs As Double
End Class