c# - 列表视图结束;xaml=>ListView=>Scrolled new Event=>CodeBehind ListView_Scrolled // c# xamarin forms - for UWP
问题描述
默认情况下,列表显示十个项目。
有必要:
- 查看列表是否滚动到末尾(显示列表末尾)(如果列表末尾)=>
- 继续迭代以显示接下来的十个元素。
{
<ListView x:Name="ListView"
Scrolled="ListView_Scrolled"
ItemsSource="{Binding ListTotal}">
</ListView>
private void ListView_Scrolled(object sender, ScrolledEventArgs e)
{
// what to do here (???)
if(end of list) // how find fin of list ???
}
ListTotal => getAllList => Scip => Take => GetBy10 这部分有效,默认海报 10,
有必要 if(列表末尾) 继续显示以下项目
ps 不是纯 UWP,xamarin 形式 - 对于 UWP
解决方案
根据您的要求,您可以侦听ItemAppearing
事件以检测当前项目是否是最后一项。然后调用命令加载下一个十个值。
void InfiniteListView_ItemAppearing(object sender, ItemVisibilityEventArgs e)
{
var items = ItemsSource as IList;
if (items != null && e.Item == items[items.Count - 1])
{
if (LoadMoreCommand != null && LoadMoreCommand.CanExecute(null))
LoadMoreCommand.Execute(null);
}
}
但是,ItemAppearing
looks 不适用于 UWP 平台,因此我们需要自定义ListViewRender
并检测内部滚动查看器,如果当前垂直偏移量等于内容偏移量。我们需要发送回调事件然后加载更多数据。有关更多详细信息,请参阅此 david-js 的代码示例。
推荐阅读
- reactjs - 使用 GraphQL 上传图片
- firebase - Flutter 错误:在 null 上调用了 getter 'iterator'
- axios - vimeo api可以通过纯javascript访问吗?
- python - 如何向不在列表中的人打印消息
- flutter - 导航到另一个视图时如何删除 Snackbar
- java - 任务和任务有什么区别
和文档参考 - java - 关于向二叉搜索树添加节点的问题
- python-3.x - 无法将两个列表连接在一起
- flutter - 我们如何改变从手机存储作为文件导入的颤振视频的亮度和对比度?
- hibernate - 如何向我的自定义 JPA 界面添加排序?