2011-09-25 83 views
1

我一直在试图通过为我的ListView实现虚拟化来获得性能。数据虚拟化不起作用

我用下面的文章来实现这一目标:

WPF:数据虚拟化,将保罗麦克林http://www.codeproject.com/KB/WPF/WpfDataVirtualization.aspx

的问题是,不是加载只是一对夫妇的网页,所有的页面实际上装载这是奇怪的。所有的项目都加载控件时加载。


这里是我的ListView:

<ListView ItemsSource="{Binding}" 
       VirtualizingStackPanel.IsVirtualizing="True" 
       VirtualizingStackPanel.VirtualizationMode="Recycling" 
       ScrollViewer.IsDeferredScrollingEnabled="True"> 
     <ListView.ItemsPanel> 
      <ItemsPanelTemplate> 
       <VirtualizingStackPanel> 

       </VirtualizingStackPanel> 
      </ItemsPanelTemplate> 
     </ListView.ItemsPanel> 
     <ListView.View> 
      <GridView> 
       <GridViewColumn Width="250"> 
        <GridViewColumn.Header> 
         <TextBlock Text="Part Number" HorizontalAlignment="Left"></TextBlock> 
        </GridViewColumn.Header> 
        <GridViewColumn.CellTemplate> 
         <DataTemplate> 
          <TextBlock Text="{Binding Part.PartNumber}"></TextBlock> 
         </DataTemplate> 
        </GridViewColumn.CellTemplate> 
       </GridViewColumn> 

       <GridViewColumn Header="Description" Width="250"> 
        <GridViewColumn.CellTemplate> 
         <DataTemplate> 
          <TextBlock Text="{Binding Part.Description}"></TextBlock> 
         </DataTemplate> 
        </GridViewColumn.CellTemplate> 
       </GridViewColumn> 

       <GridViewColumn Header="Current Price" Width="250"> 
        <GridViewColumn.CellTemplate> 
         <DataTemplate> 
          <TextBlock Text="{Binding CurrentPrice}"></TextBlock> 
         </DataTemplate> 
        </GridViewColumn.CellTemplate> 
       </GridViewColumn> 

       <GridViewColumn Header="Old Price" Width="250"> 
        <GridViewColumn.CellTemplate> 
         <DataTemplate> 
          <TextBlock Text="{Binding OldPrice}"></TextBlock> 
         </DataTemplate> 
        </GridViewColumn.CellTemplate> 
       </GridViewColumn> 
      </GridView> 
     </ListView.View> 
    </ListView> 

回答

0

我才意识到,我是用的ScrollViewer(财产ScrollViewer.VerticalScrollBarVisibility =“可见”)在我的ListView这就是为什么所有的项目都被立即加载。

我删除它,现在一切正常。