I need to display the visible items into view instead of displays all the rows in combo box control. While scrolling that, we need to load next visible items.
How can I do that? Also, how can I ensure whether it is loaded in virtually?
Sample example:
public List<string> items = new List<string>();
public MainWindow()
{
InitializeComponent();
DataContext = this;
for (int i = 0; i < 100000; i++)
{
items.Add("item"+ i.ToString());
}
combo.ItemsSource = items;
}
Front end:
<Grid>
<StackPanel>
<ComboBox x:Name="combo" Width="150" HorizontalAlignment="Left" Margin="10,10,0,10" VirtualizingPanel.IsVirtualizing="True" />
</StackPanel>
</Grid>
After refer link:
<ComboBox x:Name="combo" Height="100" Width="150" ScrollViewer.HorizontalScrollBarVisibility="Disabled"
ScrollViewer.CanContentScroll="True" HorizontalAlignment="Left" Margin="10,10,0,10"
VirtualizingStackPanel.IsVirtualizing="True" VirtualizingStackPanel.VirtualizationMode ="Recycling" >
<ComboBox.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel IsVirtualizing="True"
VirtualizationMode="Recycling" />
</ItemsPanelTemplate>
</ComboBox.ItemsPanel>
</ComboBox>