У меня есть LongListSelector
в проекте Windows Silver Silverlight, который связан с вложенным 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
, но такой же результат.
Любая помощь была бы принята с благодарностью.