ObjectListView:将列表绑定到 DataListView

ObjectListView: Binding a list to DataListView

我正在使用 DataListView(来自 ObjectListView)来绑定自定义对象列表,但无法实现。这是我的代码:

Class MediaItem
    Property Title As String
    Property Artist As String
    Property Album As String
End Class

Dim library as New List(Of MediaItem)
dataLV.DataSource = library

现在,当我向列表中添加项目时,我希望 DataListView 自动填充自身:

library.Add(new MediaItem with {....})

但这并没有发生。 DataListView 控件中未创建任何项。另一方面,如果我先填充列表,然后将它绑定到 DataListView,那么它在控件中看起来很好,但它又不会显示对列表所做的任何更改。

任何人都可以帮助解决我在这里遗漏的问题,或者我使用 DataListView 的概念是否不正确?

谢谢

您对DataListView的理解是正确的。让您失望的只是您的数据结构。

首先,您需要使用 ObservableCollection 而不是普通的 ListObservableCollection 将在添加和删除项目时触发事件,DataListView 将相应地添加和删除行。

其次,如果您想更改 MediaItem 并让这些更改自动出现在控件中,那么您必须在 MediaItem 上实现 INotifyPropertyChanged 接口class。

有很多地方可以解释这些想法。这是一个简短的描述:List vs ObservableCollection vs INotifyPropertyChanged