Я думаю, что поведение, которое вы видите, связано с VirtualizingStackPanel.IsVirtualizing
по умолчанию True
при привязке к ItemsSource
из ListBox
, если вы, например, установите свой ListBox
, например:
<ListBox VirtualizingStackPanel.IsVirtualizing="False" SelectionMode="Extended" ItemsSource="{Binding DataContext.ResultList, RelativeSource={RelativeSource AncestorType=Window}}">
или
<ListBox ...>
...
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
</ListBox>
, тогда вы должны увидеть, что все ваши связанные объекты имеют свои IsSelected
обновленные соответственно с помощью Ctrl + A или Shift + ...
Свойства, такие как Count
коллекции даже с виртуализацией, сообщают о правильном значении для размещения таких вещей, как вычисление требуемого ScrollBar.Height
. Элементы, которые находятся за пределами порта View, не отображаются, поэтому привязки к ним не действуют до тех пор, пока они не будут использованы.