我需要将可见项目显示到视图中,而不是在组合框控件中显示所有行。滚动时,我们需要加载下一个可见项目。
我怎样才能做到这一点?另外,如何确保它是否虚拟加载?
示例:
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;
}
前端:
<Grid>
<StackPanel>
<ComboBox x:Name="combo" Width="150" HorizontalAlignment="Left" Margin="10,10,0,10" VirtualizingPanel.IsVirtualizing="True" />
</StackPanel>
</Grid>
参考链接后:
<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>