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
而不是普通的 List
。 ObservableCollection
将在添加和删除项目时触发事件,DataListView
将相应地添加和删除行。
其次,如果您想更改 MediaItem
并让这些更改自动出现在控件中,那么您必须在 MediaItem
上实现 INotifyPropertyChanged
接口class。
有很多地方可以解释这些想法。这是一个简短的描述:List vs ObservableCollection vs INotifyPropertyChanged
我正在使用 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
而不是普通的 List
。 ObservableCollection
将在添加和删除项目时触发事件,DataListView
将相应地添加和删除行。
其次,如果您想更改 MediaItem
并让这些更改自动出现在控件中,那么您必须在 MediaItem
上实现 INotifyPropertyChanged
接口class。
有很多地方可以解释这些想法。这是一个简短的描述:List vs ObservableCollection vs INotifyPropertyChanged