在没有MVVM的情况下更新LongListSelector ItemSource

本文关键字:更新 LongListSelector ItemSource 情况下 MVVM | 更新日期: 2023-09-27 18:29:06

我正在开发一个Windows Phone 8应用程序,该应用程序从Web服务获取数据并进行显示

我有一个绑定到LongListSelector的通知列表,当用户滚动到最后时,我想在其中显示更多项目:一个无限列表。

我搜索了很多,但在我的案例中没有找到任何解决方案,他们都谈到了Model、View、ViewModel架构。如果我要将Lists更改为ObservableCollections,我必须重复我的许多工作。

我的实际代码是:

private async void NotificationList_ItemRealized(object sender, ItemRealizationEventArgs e)
{
    if (NotificationList.ItemsSource == null) return;
    int currentItemsCount = NotificationList.ItemsSource.Count;
    if (currentItemsCount >= _offsetKnob && e.Container != null)
    {
        var list = await LoadDataAsync(++page);
        foreach (var notification in list)
        {
            NotificationList.ItemsSource.Add(notification);
        }
    }
}

元素被添加到列表中,但没有显示,有什么解决方案可以在新项目被添加到LongListSelector后立即显示它们吗??

在没有MVVM的情况下更新LongListSelector ItemSource

为什么从Lists更改为ObservableCollections对您来说很困难?当您的列表在后台更新,并且您希望通知UI更新时,ObservableCollection是正确的方法。我已经写了两个关于从web服务增量加载数据的示例(示例中为500px)。

Windows Phone系列-在Pivot 内增量加载多个数据源

Windows Phone系列-增量加载

如果您不想更改为ObservableCollection,则必须手动更新UI绑定。