0

我在VirtualizedWrapPanel 的这个实现中修复了几行。 好的,我将带有 VirtualizedWrapPanel 的 ListView 作为 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>

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

4

1 回答 1

1

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

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

于 2013-08-29T11:37:02.927 回答