0

基本列表框模板

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

我该如何解决这个问题?

4

0 回答 0