Wpf ListView-滚动条高度在我滚动时不断变化

Wpf ListView-滚动条高度在我滚动时不断变化,wpf,listview,scrollbar,Wpf,Listview,Scrollbar,我有一个用ListViewItems显式填充(无绑定)的ListView。 大多数项目需要可见,其他项目应保持折叠状态。所有物品的高度都相同 问题是,如果我有100个项目,前60个项目可见,而底部40个项目处于折叠状态,则滚动条的高度会根据所有100个项目都处于可见状态的假设而变小,滚动条的高度会变小。但当我向下滚动到60时,它意识到其余的40项处于折叠状态,因此增加了滚动条的高度,使其适合列表视图中的60项 我最初认为这可能是因为虚拟化。但是我没有任何数据绑定到列表视图。我还尝试将需要处于折叠

我有一个用ListViewItems显式填充(无绑定)的ListView。 大多数项目需要可见,其他项目应保持折叠状态。所有物品的高度都相同

问题是,如果我有100个项目,前60个项目可见,而底部40个项目处于折叠状态,则滚动条的高度会根据所有100个项目都处于可见状态的假设而变小,滚动条的高度会变小。但当我向下滚动到60时,它意识到其余的40项处于折叠状态,因此增加了滚动条的高度,使其适合列表视图中的60项

我最初认为这可能是因为虚拟化。但是我没有任何数据绑定到列表视图。我还尝试将需要处于折叠状态的项目的高度设置为0,但这并没有给我期望的结果

我需要的是,如果有60个可见项和40个折叠项,那么滚动条的高度应该仅基于列表视图中的60个项,并且应该保持不变。
有可能实现吗?

我不确定是什么让您决定它不是虚拟化,因为它必须是虚拟化。尝试关闭虚拟化:

<ListView VirtualizingStackPanel.IsVirtualizing="False"  ...

我遇到了完全相同的问题,答案可以在这里找到:

很快,在列表框中添加
ScrollViewer.CanContentScroll=“False”
,滚动条的高度将保持不变,而与折叠的项目数无关


顺便说一句,我知道这个问题已经讨论了将近2年了,但是我想把它留作将来参考。

我认为这不是因为虚拟化,因为