具有一个按钮和一个DataListView的创建表单。
将此代码添加到表单中:
Dim dummies As New ObservableCollection(Of Dummy)
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
dlvDummies.DataSource = dummies
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
dummies.Add(New Dummy(Now.ToLongTimeString()))
End Sub
Class Dummy
Public Property X As String
Sub New(x As String)
Me.X = x
End Sub
End Class
这实际上是我在一个较大的应用程序中遇到的问题的简单再现。 https://stackoverflow.com/a/30157854/2112855中给出的答案暗示这应该“正常工作”。这是缺陷还是我自己的用户错误?
用固定的BindingList(Of foo)替换ObservableCollection(Of foo),或者解决了此问题。
[我认为,基于https://sourceforge.net/p/objectlistview/discussion/812923/thread/ab0d6208/的讨论,在https://stackoverflow.com/a/30157854/2112855中接受的答案是错误的,应该对其进行编辑。