我希望能够在Silverlight中将数据加载到DataGrid中。这是场景:
在客户端下载DataGrid时,将此数据加载到DataGrid的最佳(或最有效)方法是什么?而不是等待下载完成?
答案 0 :(得分:3)
处理此问题的一种方法是实施自定义虚拟化。
检索id并仅加载可见对象(可能还有一些以允许滚动) 在需要滚动时检索更多对象。
答案 1 :(得分:1)
问题是我试图通过我的评论得到的一部分(你仍然没有真正指定返回的数据类型),以及Erno给你一个可行的解决方案。 Web服务序列化您发送的任何返回类型,并且不会给您部分结果。这不是你如何与网格连接的问题,这是一个问题,即客户端上的Web服务调用何时说“我收到你需要的数据,现在继续处理”。例如,如果您在服务器端收集数据表,其中包含4MB的记录,那么在您的服务中执行以下操作:
return MyMassiveDatatable;
然后你将不得不等待整个数据表被序列化并通过电线抽出。
他的解决方案是将转移分解为原子单位。 I.E.首先查询一个Web服务调用中记录的id,然后遍历这些id并一次请求每个id的记录,当您收到一个记录时,将其添加到客户端表中,以便当你得到它时,display会写下每条记录。