C# 如何用外部API响应填充列表框?
我向API发出请求,我得到的唯一选项是async get responseC# 如何用外部API响应填充列表框?,c#,windows-phone-7,asynchronous,listbox,httpwebrequest,C#,Windows Phone 7,Asynchronous,Listbox,Httpwebrequest,我向API发出请求,我得到的唯一选项是async get response var r = (HttpWebRequest)WebRequest.Create(url); r.BeginGetResponse(new AsyncCallback(ResponseMethod), state); 因此,我构建了获取数据所需的一切,并且它正在工作。但是数据是在不同的线程中接收的。我的列表框绑定到存在于我的MainViewModel中的StreamItems public ObservableCol
var r = (HttpWebRequest)WebRequest.Create(url);
r.BeginGetResponse(new AsyncCallback(ResponseMethod), state);
因此,我构建了获取数据所需的一切,并且它正在工作。但是数据是在不同的线程中接收的。我的列表框绑定到存在于我的MainViewModel
中的StreamItems
public ObservableCollection<StreamItemViewModel> StreamItems { get; private set; }
我得到:
UnauthorizedAccessException - Invalid cross-thread access.
如何添加从请求中获得的值?您必须在UI线程上执行此操作-为此,您可以使用:
UnauthorizedAccessException - Invalid cross-thread access.
Dispatcher.BeginInvoke(() =>
{
StreamItems.Add(new StreamItemViewModel
{
Content = responseContent
});
});