获取新行- 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后端。
听起来你想要
1)将新项目添加到您的集合中,但前提是它们在初始调用时不存在于数据库中。2)查看排序的集合
在回答:1)这不是ToIncrementalLoadingCollection()的真正意义,它更适合于分页或加载滚动类型操作。为此,控件将在需要时自动调用LoadMoreItemsAsync()。
听起来你想要加载所有记录,然后用新记录更新集合。您将需要实现一个查询,该查询可以识别数据库中的新数据库,并将它们添加到您的集合中。
2)我假设,你正在使用一个带有isupportincrementloading的ObservableCollection,那么诀窍是对视图而不是集合进行排序和过滤。这意味着您不需要关心添加到ObservableCollection中的项的顺序。在你的视图中,你应该在XAML.