2013-08-29 58 views
0

我已經修復了幾行this implementation of a VirtualizedWrapPanel. 好吧,我已經把ListView與VirtualizedWrapPanel作爲ListView的ItemsPanel的窗口不可滾動。用戶不用滾動,而是通過點擊按鈕來啓動類似頁面更改的操作。因此,我會以某種方式將「下一部分項目」視爲對按鈕點擊的響應。ListView與VirtualizedWrapPanel不滾動

這是我所描述的ListView控件:

<ListView x:Name="StationsListView" 
       ScrollViewer.VerticalScrollBarVisibility="Disabled" 
       BorderThickness="0" 
       DataContext="{StaticResource ViewModelKey}" 
       SelectionMode="Extended" 
       Grid.Row="1" ItemsSource="{Binding Stations}"> 
     <ListView.ItemsPanel> 
      <ItemsPanelTemplate> 
       <common:VirtualizingWrapPanel IsItemsHost="True" /> 
      </ItemsPanelTemplate> 
     </ListView.ItemsPanel> 
     <ListView.ItemTemplate> 
      <DataTemplate> 
       <Button Style="{DynamicResource DestinationButtonStyle}"> 
        <TextBlock Text="{Binding FullName}" 
           Style="{DynamicResource DestinationStationTextBlockStyle}" 
           TextTrimming="CharacterEllipsis" /> 
       </Button> 
      </DataTemplate> 
     </ListView.ItemTemplate> 
    </ListView> 

所以,我怎麼能滾動手動項目的下一個部分?

+0

如何調用[ScrollIntoView](http://msdn.microsoft.com/en-us/library/system.windows.controls.listbox.scrollintoview.aspx)並傳遞「項目的下一部分的第一項」。 – Clemens

+0

如何確定列表中有多少元素被渲染? – EngineerSpock

+0

嗯,我用Scrollel寫下了ScrollIntoView,什麼也沒有發生。 – EngineerSpock

回答

1

從您的鏈接中查看代碼示例後,我不相信作者對虛擬化主題的瞭解。代碼似乎比它需要更復雜和效率更低。

我有一本WPF書,很好地解釋了虛擬化的例子,你很幸運,因爲有人在線發佈了它。我不確定它是否合法,所以我不能確定這個鏈接能工作多久,但現在它確實:看看Control Development Unleashed在線的第8章。