我需要实现无限列表框(当用户滚动到末尾时加载数据块的列表框)并且我正在使用 ViewModel。
我已将 ListBox 绑定到 ObservableCollection,但我不知道如何在到达它的末尾时收到通知,但又不会破坏 MVVM 范式。我怎样才能做到这一点?
我唯一需要知道的是如何保留 MVVM 功能和约束,并且在集合被枚举到结束时得到通知。
谢谢。
编辑
我一直在挖掘,恐怕这不是一个简单的解决方案。我认为唯一的可能性是实现将实现 ICollection 和 INotifyCollectionChanged 的自定义集合。但是我不知道 ListBox 和其他启用了 ItemsSource 的控件的内部机制是如何工作的,所以我不知道如何实现延迟加载。
使用 ItemsSource 的 WP 控件的主要获取机制是 IEnumerable 接口吗?还是它使用索引器方法?它如何调用计数?它取决于计数还是可以在它的生命周期中更改(以及在哪些调用中?我认为并非所有调用都可以更改计数然后调用 NotifyCollectionChanged)。
有文件吗?或者有没有可用的实现?