获取新行- Azure移动服务

本文关键字:移动 服务 Azure 新行 获取 | 更新日期: 2023-09-27 17:53:57

我希望我的MobileServiceIncrementalLoadingCollection<Video, Video> Videos;(绑定到ListView)每5秒更新一次来自我的Azure数据库的新行,如果有的话。

页面加载

Videos = VideoTable.ThenByDescending(x => x.DateTime).ToIncrementalLoadingCollection();

在该阶段,Videos收集加载了第一个项目(因为它是增量加载收集),并且在ListView中可见。

之后,每5秒我执行以下代码(这是不工作/在集合中添加新行)

var tempVideos = VideoTable.ThenByDescending(x => x.DateTime).ToIncrementalLoadingCollection();
var newVideos = tempVideos.Where(x => !Videos.Contains(x, new VideoComparer()));            
foreach (Video v in newVideos)
{
    Videos.Insert(0, v);
}

我不想使用Videos = tempVideos,因为整个ListView正在更新,AddDeleteThemeTransition每5秒显示一次,这真的很烦人和丑陋。

我的问题是,

如何在MobileServiceIncrementalLoadingCollection创建集合后添加新添加的表行而不重新创建集合?



PS.我用的是。net后端。

获取新行- Azure移动服务

听起来你想要

1)将新项目添加到您的集合中,但前提是它们在初始调用时不存在于数据库中。2)查看排序的集合

在回答:

1)这不是ToIncrementalLoadingCollection()的真正意义,它更适合于分页或加载滚动类型操作。为此,控件将在需要时自动调用LoadMoreItemsAsync()。

听起来你想要加载所有记录,然后用新记录更新集合。您将需要实现一个查询,该查询可以识别数据库中的新数据库,并将它们添加到您的集合中。

2)我假设,你正在使用一个带有isupportincrementloading的ObservableCollection,那么诀窍是对视图而不是集合进行排序和过滤。这意味着您不需要关心添加到ObservableCollection中的项的顺序。在你的视图中,你应该在XAML.

中实现一个绑定到ObservableCollection的CollectionViewSource资源。