【发布时间】:2014-12-21 12:39:39
【问题描述】:
我有一个场景,我想在 ItemsControl 中显示很多项目。由于项目的布局方式(使用画布),我无法使用标准的虚拟化面板,因此加载控件需要很长时间。
与其一次性加载所有项目,我想知道如何批量加载项目?
例如,如果我使用 ListBox,它的 itemsSource 设置为某个大列表,我如何以 10 个项目为一组创建 ListBoxItems,将剩余的项目推迟到下一个 Dispatcher 事件(Background 或 AppIdle )?
这个问题可以很容易地从 ViewModel 解决,方法是让 ItemsSource 成为随每个新批次增长的 Observable 集合,但我想在 View 级别添加它。
我也不希望它使用 ItemContainers Visibility 属性来实现,因为它很可能已经被使用了。
【问题讨论】:
标签: wpf visibility itemscontrol deferred