1

私はいくつかの問題を抱えており、それはすべていくつかの単純化されたコードで説明されています

私は構造を持っています

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

次のようにシングルトンオブジェクトでインスタンス化されます

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 にどのコードを配置してもかまいません。変更を反映させることができません。

これらのイベントで breakbpoints を使用すると、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 に答える