WPF ListBox在用户滚动时生成项目

per*_*man 3 .net c# wpf listbox infinite-sequence

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

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

我最好的想法是添加一个监听器,每当ListBox向下滚动时都会收到通知,并添加新项目,以便k在最后一个项目可见之后总是有更多项目(其中k可能是一次可见的项目数量,因此Page Down工作).

是否有一些更清洁的方法来处理这个?

Dav*_*mer 7

我将使用a VirtualizingStackPanel来使UI绘制更少的元素,然后使用数据虚拟化技术来限制您在内存中保留的数据.在此处查看更多详细信息(特别是Bea Stolnitz在此处引用的博客条目).