2011-03-23 135 views
3

我目前有一個由XML文件提供的列表框。我使用webclient抓取XML,然後使用以下代碼將其解析到列表框中;listbox的實時更新

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,這可能需要一段時間的手機。所以我想知道是否可以在收到數據時將它顯示在列表框中。在保持良好表現的同時使用最好的方法是什麼?

非常感謝, 彌敦道

回答

3

網頁客戶端不會直到所有的數據已經收到,所以我不會是可能的到達查看數據觸發完成的事件。

+0

好的,謝謝你的回覆。還有哪些其他方法可用?也許它會解釋爲什麼我無法讓我的進度條工作(使用Web客戶端)。也許httpwebrequest? – Nathan 2011-03-23 16:38:16

2

除了@ harryover的答案,使用的WebClient或HttpWebRequest的會不會真的讓你做漸進渲染:

  • 對於數據,HTTP層將有望使用ZIP編碼的有效下載 - 和部分zip文件不能被解壓
  • 另外,XML解析器都非常差,在與部分文件的工作(他們需要打開和關閉標籤)

做你想做的事,最好的辦法可能是分裂您的數據分成不同的HTTP請求 - 請求大量較小的請求,而不是一個大的請求。