带有虚拟化WrapPanel的ListView,无需滚动

时间:2013-08-29 10:35:31

标签: wpf listview wrappanel

我在this implementation of a VirtualizedWrapPanel.中修了几行 好吧,我把ListView和VirtualizedWrapPanel放在ListView的ItemsPanel上的窗口不能滚动。用户不会滚动,而是通过单击按钮启动页面更改等操作。因此,我应该以某种方式将“项目的下一部分”视为对按钮点击的响应。

这是我所描述的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>

那么,如何手动滚动到下一部分项目?

1 个答案:

答案 0 :(得分:1)

在查看链接中的代码示例后,我不相信作者对虚拟化主题的了解。代码似乎比它需要的更复杂,效率更低。

我有一本WPF书籍,可以很好地解释虚拟化的例子,你很幸运,因为有人在网上发布了它。我不确定它是否合法,所以我无法验证此链接的工作时间,但现在确实如此:在Control Development Unleashed在线查看第8章。