我正在尝试为分层控件实现一个虚拟化集合,类似于本文中介绍的常规控件。
文章中提出的解决方案在很大程度上依赖于以下行为(来自文章):
当 an
ItemsControl
绑定到一个IList
实现而不是一个IEnumerable
实现时,它不会枚举整个列表,而只会访问显示所需的项目。它使用该Count
属性来确定集合的大小,大概是设置滚动范围。然后它将使用列表索引器遍历屏幕上的项目。因此,可以创建一个IList
可以报告有大量项目的报告,但仅在需要时才实际检索这些项目。
我发现 whileListBox
有这种行为,TreeView
(这也是一个ItemsControl
)的行为不是这样的,并且总是请求所有项目,无论它们是否显示在屏幕上。
那么,这是仅针对ListBox
而不是针对每个人的行为,ItemsControl
还是 WPF 中的错误TreeView
?
我也无法在 MSDN 上找到有关此行为的任何提及,因此如果有人发现它记录在任何我想知道的地方。