我在Windows Phone Silverlight項目中有一個LongListSelector
,它綁定到嵌套ObservableCollection
。將LongListSelector綁定到異步更新的嵌套ObserverCollection(使用WebClient)
爲了讓分組工作和自動更新,我使用的自定義組類擴展了ObservableCollection
。
我的階級結構是這樣的:
Main.xaml.cs:
ObservableCollection<Group<MyViewModel>> _groups;
Group.cs:
Group<T> : ObservableCollection<T> {...}
我填充組異步,使用WebClient
:
WebClient wc = new WebClient();
wc.OpenReadCompleted += (sender, obj) {
// parse the response here, get list of MyModels
...
foreach (var model in models)
{
var group = _groups.SingleOrDefault(g => g.Key == model.Key);
if (group == null)
{
group = new Group<MyModel> { Key = model.Key };
_groups.Add(group);
}
group.Add(model);
}
}
所有這些工作正常,除了綁定到LongListSelector
。 第一個項目會被正確添加,但每個後續項目添加到組列表都會導致IndexOutOfBounds
異常。
我試着處理CollectionChanged
事件,將項目添加到組中,而不是在ReadComplete
上,但結果相同。
任何幫助將不勝感激。