我正在尝试使用ListBox
向用户显示一个可能无限的选项列表。目前,我只是在任意点截断列表,但我想允许用户向下滚动到他们想要的地方。另外,我想尽可能避免生成不可见的项,因为必须对每个项进行一些计算。
我尝试编写listBox.ItemsSource = enumerable
,希望它仅请求可见项,但实际上它会尝试读取所有项,如果存在无限多的项,则会导致无限循环。
我的最佳想法是添加一个监听器,每当ListBox
向下滚动时通知它,并添加新项,以便始终在最后一个可见项之后有k
个以上的项(其中k
可能是一次可见的项目数,以便进行页面向下滚动)。
是否有一种更干净的方式来处理这个问题?