3

我正在尝试使用 aListBox向用户显示可能无限的选项列表。目前,我只是在任意点切断列表,但我希望允许用户尽可能地向下滚动。另外,我想尽可能避免生成不可见的项目,因为必须进行一些计算才能生成每个项目。

我尝试写listBox.ItemsSource = enumerable期望它只询问可枚举的可见项目,但相反它会尝试读取所有项目,如果有无限多的项目会导致无限循环。

ListBox我最好的想法是添加一个侦听器,该侦听器在向下滚动时收到通知并添加新项目,以便k在最后一个可见项目之后总是有更多项目(其中k可能是一次可见的项目数,因此 Page Down 有效)。

有没有更清洁的方法来处理这个?

4

1 回答 1

7

我会使用 aVirtualizingStackPanel让 UI 绘制更少的元素,然后使用数据虚拟化技术来限制您保存在内存中的数据。在此处查看更多详细信息(尤其是此处引用的 Bea Stolnitz 的博客条目)。

于 2012-01-01T01:59:42.343 回答