WPF列表框UI虚拟化无法正常工作

时间:2016-09-20 23:00:24

标签: c# wpf listbox data-virtualization

基本列表框模板

<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#代码查找,并且数据表中的所有项目的代码都被命中,而不仅仅是可见项目?

如何解决此问题?

0 个答案:

没有答案