如果不直接查询 ItemsControl 的数据源,是否可以在 WPF VirtualizingStackPanel 中获取尚未实现的项目的索引?我唯一能想到的是使用 ItemContainerGenerator 但我没有找到任何返回项目索引的东西。
我实际上是在尝试确定是否在水平堆栈面板的当前视口范围之前或之后列出了特定项目。
// ? get item index
if (itemIndex < 0) return;
var viewIndexLeft = virtualizingStackPanel.HorizontalOffset;
var viewIndexRight = viewIndexLeft + virtualizingStackPanel.ViewportWidth;
if (itemIndex < viewIndexLeft)
{
// indicate LEFT
}
else if (itemIndex > viewIndexRight)
{
// indicate RIGHT
}