列表框的实时更新

时间:2011-03-23 15:45:56

标签: c# windows-phone-7 listbox

我目前有一个由XML文件提供的列表框。我正在使用webclient来获取XML,然后使用以下代码将其解析到列表框中;

 XElement xmlSearch = XElement.Parse(e.Result);                    
        lstbSearch.ItemsSource = from Search in xmlSearch.Descendants("e2event")
                                 select new GetSearch
                                 {
                                     e2eventtitle = Search.Element("e2eventtitle").Value,
                                     e2eventid = Search.Element("e2eventid").Value
                                 };

现在文件可能大到150kb,这可能需要一些时间在手机上。所以我想知道是否可以在收到数据时将其显示在列表框中。在保持良好表现的同时使用最佳方法是什么?

非常感谢, 森

2 个答案:

答案 0 :(得分:3)

在收到所有数据之前,网络客户端不会触发已完成的事件,因此我无法在数据到达时查看数据。

答案 1 :(得分:2)

除了@ harryover的回答,使用WebClient或HTTPWebRequest不会真正允许你逐步渲染:

  • 为了有效下载数据,HTTP层有望使用ZIP编码 - 部分zip文件无法解压缩
  • 此外,XML解析器在处理部分文档时非常差(需要打开和关闭标记)

执行您想要做的事情的最佳方式可能是将数据拆分为单独的HTTP请求 - 制作大量较小的请求而不是一个较大的请求。