【问题标题】:Populate ListBox on RequestEnd在 RequestEnd 上填充 ListBox
【发布时间】:2013-07-03 13:57:43
【问题描述】:

在 Windows Phone 8 上工作。

遇到了一个问题,几年前我以某种方式解决了,但不记得了。

GetNews();
InitializeComponent();

private void GetNews()
{
    HttpWebRequest request = HttpWebRequest.CreateHttp(GS.BACKEND_HOST + "something");
    request.BeginGetResponse(new AsyncCallback(HandleResponseNews), request);
}

private void HandleResponseNews(IAsyncResult result)
{
    HttpWebRequest request = result.AsyncState as HttpWebRequest;
    if (request != null)
    {
        using (WebResponse response = request.EndGetResponse(result))
        {
            using (StreamReader reader = new StreamReader(response.GetResponseStream()))
            {
                string JSON = reader.ReadToEnd();
                NewsList = JsonConvert.DeserializeObject<News>(JSON) as News;
            }
        }
    }

}

我需要用 NewsList 项目填充我的列表框。但我只能在 NewsList 填满请求响应后才能做到。

我需要某种类型的触发器...

【问题讨论】:

  • 找到解决方案:Deployment.Current.Dispatcher.BeginInvoke(() => { foreach (NewsList.Result.Articles 中的文章文章) { NewsListBox.Items.Add(article.Title); } }) ;
  • 要么删除你的问题,要么自己回答并给出适当的解释。但在这种情况下,我建议你删除它,因为问题已经很模糊了。

标签: windows-phone-7 asynchronous windows-phone-8 httprequest httpwebresponse


【解决方案1】:

找到解决方案:

 Deployment.Current.Dispatcher.BeginInvoke(() => 
 { 
      foreach (Article article in NewsList.Result.Articles) 
      { 
      NewsListBox.Items.Add(article.Title); 
      } 
  }); 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-13
    • 2019-05-12
    相关资源
    最近更新 更多