在Silverlight 4中使用大型数据集

时间:2011-08-25 22:41:28

标签: c# silverlight silverlight-4.0

我想利用异步加载数据,因为我的用户可能有潜在的连接。它们有可能在数千条记录中拉回数据编号,有时甚至更多。我现在没有可用的数据源,现在可以给我数千条记录。我只想确认用户能够看到网格或列表框的内容,而其余数据集在后台加载异步。看起来数据虚拟化可能是一种选择,但我发现的文章要么是垃圾,要么是基于旧版本的SL。有没有人有任何链接和POC或这种行为的例子?

如果我在列表框上启用了数据页面,那么在获取其余数据时,屏幕上会显示第一页数据吗?或者只是在用户导航到下一页时才加载数据?

1 个答案:

答案 0 :(得分:1)

您可以利用Data Virtualization,

  
      
  • 创建要创建的UI元素的数量   使用VirtualizingStackPanel.IsVirtualizing =“True”在屏幕上可见。

  •   
  • 让框架回收项容器而不是(重新)创建   他们每一次,通过设置   VirtualizingStackPanel.VirtualizationMode = “回收”。

  •   
  • 使用滚动条滚动时延迟滚动   ScrollViewer.IsDeferredScrollingEnabled = “真”。请注意,这只是   通过等待用户发布来提高感知性能   滚动条拇指更新内容。但是,我们会看到   它还可以改善下述场景中的实际性能。
  •   

以上文字来自Bea Stollinz为WPF撰写的优秀Data Virtualization document,但也应在Silverlight中采用。

您也可以利用.NET异步编程模型,例如IAsyncResultTPLEAP