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