首页 > 解决方案 > 列表视图结束;xaml=>ListView=>Scrolled new Event=>CodeBehind ListView_Scrolled // c# xamarin forms - for UWP

问题描述

默认情况下,列表显示十个项目。

有必要:

  1. 查看列表是否滚动到末尾(显示列表末尾)(如果列表末尾)=>
  2. 继续迭代以显示接下来的十个元素。

{

                    <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

标签: c#listviewasp.net-corexamarin.formsuwp-xaml

解决方案


根据您的要求,您可以侦听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);
    }
}

但是,ItemAppearinglooks 不适用于 UWP 平台,因此我们需要自定义ListViewRender并检测内部滚动查看器,如果当前垂直偏移量等于内容偏移量。我们需要发送回调事件然后加载更多数据。有关更多详细信息,请参阅此 david-js 的代码示例


推荐阅读