基本列表框模板
<ListBox Height="200"
x:Name="lstBox"
ScrollViewer.VerticalScrollBarVisibility="Visible"
VirtualizingStackPanel.IsVirtualizing="True" VirtualizingStackPanel.VirtualizationMode="Recycling" VirtualizingStackPanel.CacheLength="2,3"
VirtualizingStackPanel.CacheLengthUnit="Page"
ItemTemplate="{StaticResource DataTemplater}"
ItemsSource="{Binding Source={StaticResource SearchedResults}}"
SelectedItem="{Binding CurrentItem}"
IsSynchronizedWithCurrentItem="True">
<ListBox.Template>
<ControlTemplate TargetType="{x:Type ItemsControl}">
<ScrollViewer >
<ItemsPresenter />
</ScrollViewer>
</ControlTemplate>
</ListBox.Template>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel ScrollUnit="Pixel" Orientation="Vertical" VirtualizationMode="Recycling" IsContainerVirtualizable="True" IsVirtualizing="True" IsItemsHost="True"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
</ListBox>
DataTemplater项模板包含带有绑定控件的堆栈面板。绑定源是数据集中的数据表。
这里的问题是虚拟化不起作用,因为我在项目模板中指定了C#代码查找,并且数据表中的所有项目的代码都被命中,而不仅仅是可见项目?
如何解决此问题?