Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 获取新行-Azure移动服务_C#_Azure_Azure Mobile Services - Fatal编程技术网

C# 获取新行-Azure移动服务

C# 获取新行-Azure移动服务,c#,azure,azure-mobile-services,C#,Azure,Azure Mobile Services,我想要我的MobileServiceIncrementalLoadingCollection视频(绑定到ListView)每5秒更新一次my Azure数据库中的新行(如果有) 页面加载 Videos = VideoTable.ThenByDescending(x => x.DateTime).ToIncrementalLoadingCollection(); 在该阶段,视频集合加载了第一个项目(因为它是一个增量加载集合),并且在列表视图中可见 之后,每隔5秒我执行以下代码(不工作/在集

我想要我的
MobileServiceIncrementalLoadingCollection视频(绑定到ListView)每5秒更新一次my Azure数据库中的新行(如果有)

页面加载

Videos = VideoTable.ThenByDescending(x => x.DateTime).ToIncrementalLoadingCollection();
在该阶段,
视频
集合加载了第一个项目(因为它是一个增量加载集合),并且在
列表视图
中可见

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

我不想使用
Videos=tempVideos
,因为整个
ListView
正在更新,而且
adddeletetethemetransition
每5秒钟为每个项目显示一次,这真是令人讨厌和难看

所以我的问题是,

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




另外,如果有必要的话,我正在使用.NET后端。

听起来像是你想要的

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

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);

}
答复:

1) 这并不是增加加载集合()的重点,它更适合分页或滚动加载类型的操作。为此,控件将在需要时自动调用LoadMoreItemsAsync()

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

2) 我假设您使用的是一个带有ISupportIncrementalLoading的observateCollection,那么诀窍是对视图进行排序和过滤,而不是对集合进行排序和过滤。 这意味着您不太关心将项添加到ObservableCollection的顺序。
在您的视图中,您应该实现一个CollectionViewSource资源,该资源绑定到XAML中的ObservableCollection。

这行不是吗
Videos.Insert(0,v)将每个新视频添加到索引0,而不是集合的结尾?是的,这就是我想要的。我希望在开始时添加新视频,因为视频收集是按日期时间降序的。啊,我明白了。如果
HasMoreItems
为true,您不能每隔5秒调用
Videos.LoadMoreItemsAsync()
?如果每隔5秒调用LoadMoreItemsAsync一次,加载的项目将在列表中可见,则可能必须对此进行测试,因为Think
MobileServiceIncrementalLoadingCollection
自动执行了此操作。不幸的是,这不是增量加载集合的正确用法。此外,我只想使用添加到数据库中
Videos=VideoTable之后的新项更新集合。然后使用降序(x=>x.DateTime)。ToIncrementalLoadingCollection()在页面加载1)我想使用滚动加载,这就是我使用
来增加加载集合的原因。我只想在绑定的
列表视图的开头显示新记录。是的,这就是我想做的。2) 不过,谢谢你的建议。这对我很有帮助。您是否使用CollectionViewSource获取UI排序顺序?