更新没有MVVM的LongListSelector ItemSource

时间:2013-08-27 12:19:01

标签: c# wpf mvvm windows-phone-8 longlistselector

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

我有一个绑定到LongListSelector的通知列表,我希望在用户滚动到结尾时显示更多项目:无限列表。

我经常搜索,但在我的案例中我找不到任何解决方案,他们都谈论模型,视图,ViewModel架构。如果我将我的列表更改为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后立即显示?

1 个答案:

答案 0 :(得分:1)

为什么从列表更改为ObservableCollections很难?当您的列表在后台更新并且您想要通知UI有关更新时,ObservableCollection是正确的方法。 我已经为Web服务的增量加载数据编写了2个样本(样本中为500px)。

Windows Phone Series – Incremental Loading multiple data sources inside a Pivot

Windows Phone Series – Incremental Loading

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