Я считаю, что это из-за вашего использования ItemContainerGenerator.ContainerFromItem
.
ListBox
использует VirtualizingStackPanel
по умолчанию.Таким образом, элементы, которые не отображаются на экране при загрузке окна, еще не созданы.Установка их на Collapsed
не имеет никакого эффекта, когда они возвращаются на экран.
Вы можете немного поиграть с этим, изменив начальную высоту Window
.Если вы установите его на 550 или около того, он работает как положено.Если вы установите его на 150 или около того, у вас будет МНОГО элементов, которые все еще видны.
Одна вещь, которую вы можете сделать, чтобы изменить это, если у вас не будет такого количества элементов, это просто изменить1012 *.