限制实现的项目数或检测LongListSelector视图中的项目

时间:2014-01-06 02:35:18

标签: windows-phone-8 longlistselector

我正在尝试为LongListSelector实现无限滚动。

我最初使用15个项填充列表,并依赖ItemRealized事件来检测我何时在列表的末尾并需要加载更多。 WXGA屏幕上一次可以看到5个项目。

我的问题是所有15个项目都是在第一次加载时实现的,它会立即加载更多。这是不可取的,因为每个负载都与昂贵的网络呼叫相关联。

是否可以限制在视图之外实现的项目数量(我将其设置为< 15),或者是否有办法依赖项目进入视图而不是实现?

1 个答案:

答案 0 :(得分:1)

我认为您需要在viewmodel中维护一个属性,该属性将决定何时加载.. 代码应该类似于任何固定项目(在您的情况下为15)

    private void ItemRealized(object sender, ItemRealizationEventArgs e)
    {
        if (e.ItemKind == LongListSelectorItemKind.Item)
        {
            ViewModel vm = DataContext as ViewModel;
            var item = e.Container.Content;
            var items = nameoflonglistSelector.ItemsSource;
            var index = items.IndexOf(item);
            if (vm.Isloading == false && index == nameoflonglistSelector.ItemsSource.Count-1) //initally it will be false
            {
                vm.laodextraData();
                vm.Isloading = true;
            }
        }
    }