1

我遇到了一些问题,这一切都在一些简化的代码中得到了解释

我有一个结构

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 事件,但这些事件从未被调用。(那是在猜测基础上)

如果有人可以帮助我,我对这个真的没有想法!

谢谢。

4

1 回答 1

2

尝试改用一个类:

Public Class myStruct
  Public Property name As String
  Public Property span As Double
  Public Property offs As Double
End Class
于 2012-06-19T20:49:53.523 回答