ListView WP8 中的增量加载
Incremental Loading in ListView WP8
我看过关于如何在滚动到列表视图底部时进行增量加载的文章,但是如何在滚动到列表视图顶部时实现延迟加载。当用户到达顶部时,我想将更多项目添加到列表顶部。有什么办法可以做到这一点。
没有内置解决方案。
这是一个检查 ListViews 滚动位置并在它位于顶部时加载其他项目的示例。
// Attach to the view changed event
_scrollViewer = listview.GetFirstDescendantOfType<ScrollViewer>();
if (_scrollViewer != null)
{
_scrollViewer.ViewChanged += OnViewChanged;
}
和处理程序。
private void OnViewChanged(object sender, ScrollViewerViewChangedEventArgs e)
{
// If scrollviewer is scrolled up
if (_scrollViewer.VerticalOffset < 150)
{
// Start loading new items...
}
}
小心轻放:
在顶部添加项目时,滚动位置会发生变化。
检查非常简单,仅当滚动查看器实际可以滚动时才会起作用。
已找到解决方案。旋转两个控件。
例如->
<ListView x:Name="GridViewMain" IncrementalLoadingThreshold="2" RenderTransformOrigin="0.5,0.5">
<ListView.RenderTransform>
<RotateTransform Angle="180"></RotateTransform>
</ListView.RenderTransform>
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
<Setter Property="VerticalContentAlignment" Value="Stretch"/>
</Style>
</ListView.ItemContainerStyle>
<ListView.Resources>
<DataTemplate x:Key="DataTemplateGridViewMain">
<Grid HorizontalAlignment="Stretch" Background="#FF7C1A9B" RenderTransformOrigin="0.5,0.5">
<Grid.RenderTransform>
<RotateTransform Angle="180"/>
</Grid.RenderTransform>
<TextBlock HorizontalAlignment="Left" Text="{Binding}" VerticalAlignment="Center" FontSize="20" FontFamily="Tempus Sans ITC" />
</Grid>
</DataTemplate>
</ListView.Resources>
<ListView.ItemTemplate>
<StaticResource ResourceKey="DataTemplateGridViewMain" />
</ListView.ItemTemplate>
</ListView>
对我有用。
我看过关于如何在滚动到列表视图底部时进行增量加载的文章,但是如何在滚动到列表视图顶部时实现延迟加载。当用户到达顶部时,我想将更多项目添加到列表顶部。有什么办法可以做到这一点。
没有内置解决方案。
这是一个检查 ListViews 滚动位置并在它位于顶部时加载其他项目的示例。
// Attach to the view changed event
_scrollViewer = listview.GetFirstDescendantOfType<ScrollViewer>();
if (_scrollViewer != null)
{
_scrollViewer.ViewChanged += OnViewChanged;
}
和处理程序。
private void OnViewChanged(object sender, ScrollViewerViewChangedEventArgs e)
{
// If scrollviewer is scrolled up
if (_scrollViewer.VerticalOffset < 150)
{
// Start loading new items...
}
}
小心轻放:
在顶部添加项目时,滚动位置会发生变化。
检查非常简单,仅当滚动查看器实际可以滚动时才会起作用。
已找到解决方案。旋转两个控件。
例如->
<ListView x:Name="GridViewMain" IncrementalLoadingThreshold="2" RenderTransformOrigin="0.5,0.5">
<ListView.RenderTransform>
<RotateTransform Angle="180"></RotateTransform>
</ListView.RenderTransform>
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
<Setter Property="VerticalContentAlignment" Value="Stretch"/>
</Style>
</ListView.ItemContainerStyle>
<ListView.Resources>
<DataTemplate x:Key="DataTemplateGridViewMain">
<Grid HorizontalAlignment="Stretch" Background="#FF7C1A9B" RenderTransformOrigin="0.5,0.5">
<Grid.RenderTransform>
<RotateTransform Angle="180"/>
</Grid.RenderTransform>
<TextBlock HorizontalAlignment="Left" Text="{Binding}" VerticalAlignment="Center" FontSize="20" FontFamily="Tempus Sans ITC" />
</Grid>
</DataTemplate>
</ListView.Resources>
<ListView.ItemTemplate>
<StaticResource ResourceKey="DataTemplateGridViewMain" />
</ListView.ItemTemplate>
</ListView>
对我有用。