Вы должны использовать панель стека виртуализации для повышения производительности. В этом случае простое изменение ItemspanelTemplate ItemsPanel с StackPanel на VirtualizingStackpanel не принесет никакой пользы, потому что при нажатии на кнопку данные загружаются во всплывающем окне. поэтому вам нужно изменить StackPanel внутри ScrollViewer на VirtualizingStackpanel. Для этого отредактируйте ControlTemplate / Style для комбинированного списка, используя Expression Blend или VS, и измените всплывающую область шаблонов элементов управления, как показано ниже
<Popup
Name="Popup"
Placement="Bottom"
IsOpen="{TemplateBinding IsDropDownOpen}"
AllowsTransparency="True"
Focusable="False"
PopupAnimation="Slide">
<Grid
Name="DropDown"
MinWidth="{TemplateBinding ActualWidth}"
MaxHeight="{TemplateBinding MaxDropDownHeight}">
<Border
x:Name="DropDownBorder"
Background="{StaticResource WindowBackgroundBrush}"
BorderThickness="1"
BorderBrush="{StaticResource SolidBorderBrush}"/>
<ScrollViewer Margin="4,6,4,6">
<VirtualizingStackPanel IsItemsHost="True" KeyboardNavigation.DirectionalNavigation="Contained" />
</ScrollViewer>
</Grid> </Popup>