我在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>
那么,如何手动滚动到项目的下一部分?