【问题标题】:binding list(of class) to datagridview in vb.net将列表(类)绑定到 vb.net 中的 datagridview
【发布时间】:2014-03-06 21:00:56
【问题描述】:

我有一个类,其中包含从数据流中填充的数据列表。我想将该列表绑定到 datagridview,以便它像列表一样自动填充。但是,随着数据的进入,列表并没有刷新。我有类似的东西。

Public class MyClass
    Private mData as list(Of networkData)
    Public Property Data() as list(Of networkData)
        Get
            return mData
        End Get
        Set
            mData = value
        End Set
     End Property
        ' some other properties that aren't imporant
        ' stuff to load Data with data from network stream
end class
Public class networkDat
    Private rawdata as string
    Public Property rawdata() as string
        Get
            return mrawdata
        End Get
        Set
            mrawData = value
        End Set
     End Property
        ' some other properties that aren't imporant
        ' functions to parse rawdata into the other properties
End Class

'form
Public Class dataviewer
    Dim dataView as datagridViewer = new datagridviewer()
    Private Sub dataviewer_load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
         dim x as myClass = new myClass() 'new will start the datastream
         datagridview.datasource = x.Data
    End Sub

自从我启动数据流以来,第一个数据查看器将拥有一组初始数据。但是它不会随着新数据的出现而更新。

【问题讨论】:

  • @LarsTech 我将列表更新为绑定列表,它似乎正在工作。如果您将您的评论更改为答案,我可以将其标记为已回答并给予您信任。现在我只需要解决我的线程问题!

标签: vb.net data-binding datagridview


【解决方案1】:

List 类没有实现支持列表更改通知的 IBindingList 接口。

尝试改用BindingList 类:

提供支持数据绑定的通用集合。

要观察类中属性的变化,该类需要实现INotifyPropertyChanged 接口:

通知客户端属性值已更改。

【讨论】:

    【解决方案2】:

    List(of ) 不支持更改通知。出于您的目的,将 List(of ) 更改为 ObservableCollection(of )。

    【讨论】:

      猜你喜欢
      • 2011-05-07
      • 1970-01-01
      • 1970-01-01
      • 2018-04-20
      • 1970-01-01
      • 1970-01-01
      • 2011-09-17
      • 1970-01-01
      • 2014-01-31
      相关资源
      最近更新 更多