【发布时间】:2014-09-22 14:25:43
【问题描述】:
我的 View 中有一个 ListBox,它数据绑定到 ViewModel 中的 ObservableCollection。但即使我在 ViewModel 中加载数据后,我的 View 也没有更新
我使用这个委托来加载列表的数据:
public ObservableCollection<TwitterElement_> MyCollection_
{
get;
private set;
}
[...]
public MainViewModel()
{
this.MyList_ = new List<Object>();
this.MyCollection_ = new ObservableCollection<Object>();
this.loadedCommand = new RelayCommand(async() =>
{
this.MyList_= await FirstLoad();
foreach (Element_ t in MyList_)
{
this.MyCollection_.Add(t);
}
});
}
public async Task<List<Object>> FirstLoad()
{
var tcs = new TaskCompletionSource<List<Object>>();
var client = new RestSharp.RestClient("https://Example.com");
var request = new RestSharp.RestRequest("/request", Method.GET);
client.ExecuteAsync(request, (response) =>
{
if (response.StatusCode == HttpStatusCode.OK)
{
Task<List<Object>> FirstTask = Task.Factory.StartNew<List<Object>>(() => JsonConvert.DeserializeObject<List<Object>>(response.Content));
Task<List<Object>> SecondTask = FirstTask.ContinueWith((ft) =>
{
//Operations That I removed for more clarity...
[...]
return ft.Result;
});
tcs.SetResult(SecondTask.Result);
}
else
{
}
});
return await tcs.Task;
}
但是,即使我将对象从 List 传输到应该作用于 UI 线程的 ObservableCollection,我的 ListBox 也没有更新数据,我该怎么办?
【问题讨论】:
-
你能在你绑定的地方显示你的 XAML 吗?
标签: c# .net multithreading windows-phone-8 mvvm