我已探索过ISupportIncrementalLoading并看到了MS sample和 other examples无限滚动行为。
但是我想要从下到上滚动顶部滚动项目添加到顶部。
编辑:我找到了解决方法。我将listview旋转180度,数据模板旋转180度,这有助于我实现所需的功能。
<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>
这个解决方案是否有任何影响,或者有其他方法可以做到这一点吗?
答案 0 :(得分:0)
不确定这是否符合您的需求,但在创建聊天对话屏幕时我必须做类似的事情,并且能够使用ExtendedListView实现此目的:https://www.nuget.org/packages/ExtendedListView
我们加载最新的项目,并使用ScrollIntoView(lastMessage)将光标定位在底部。通常你会在滚动到底部时使用MoreDataRequested事件来获取项目,而是我们将其反转并使用PullToRefreshRequested模拟滚动到顶部,更改加载模板以说“加载更多消息&#34;。” / p>
对我们来说效果很好,我希望这有用!