Я использую PivotViewer и вижу, что это исключение выдается из iexplorer.exe.
"Необработанная ошибка в коде приложения Silverlight: 4004
Категория: ManagedRuntimeError
Сообщение: System.ArgumentException: ICollectionView может содержать только элементы, которые находятся в источнике Items PivotViewer в Microsoft.Internal.Pivot.ViewModels.GridViewModel.UpdateOnModelChanged () в Microsoft.Internal.Pivot.ViewModels.ViewBaseViewModel.OnUpdateComplete (отправитель объекта, EventArgs e) в System.Windows.Controls.Pivot..Controls.Pivot.PivotViewerView.SetModel (источник PivotViewerProperty sortPivotProperty, источник IEnumerable`1) в Microsoft.Internal.Pivot.Controls.CollectionViewContainer.UpdateContent () в Microsoft.Internal.Pivot.Controls.Collectionb0.1006 *
Вот описание того, что я делаю.ItemsSource средства просмотра сводной таблицы привязан к коллекции ObservableCollection, называемой «Sessions» во ViewModel.Когда пользователь впервые зашел на мой веб-сайт, он не вошел в систему, и я заполню средство просмотра сводных данных из удаленной демонстрационной базы данных (с помощью WebClient.OpenReadAsync).Когда пользователь входит в систему, я очищаю «Сессии» и асинхронно считываю данные из его собственной базы данных (используя тот же код WebClient.OpenReadAsync).На данный момент все работает как положено.PivotViewer показывает демонстрационные данные и прекрасно обновляется после того, как он вошел в систему.
Проблема возникает, когда он вышел из системы, когда я использую тот же код для очистки «Сеансов» и повторного асинхронного чтения данных из демонстрационной базы данных.Выдает указанное выше исключение.
У меня есть обходной путь.Когда пользователь выходит из системы, если я все еще очищаю «Сеансы», но не добавляю никаких данных из демонстрационной базы данных, это будет работать.Я могу войти и выйти несколько раз без каких-либо проблем.Таким образом, это показывает, что проблема, вероятно, связана с кодом, в котором я добавляю данные в «Session» ObservableCollection.
Я также предполагаю, что это условие гонки, связанное с многопоточностью, вызванное OpenReadAsync WebClient для чтения данных с удаленного веб-сайта.
Я застрял сейчас, и любая помощь будет оценена.Спасибо!