Использование PagedCollectionView для четырех списков, которые поддерживают перетаскивание = ошибки индекса при применении фильтра - PullRequest
3 голосов
/ 05 августа 2010

Я использую Silverlight 3, и у меня есть выпадающее меню, которое используется для фильтрации четырех списков. Эти списки по отдельности заключены в ListBoxDragDropTarget (из набора инструментов silverlight).

Идея состоит в том, что пользователь может видеть все доступные элементы или фильтровать их представление (все четыре списка) по определенной категории.

В одном списке отображаются доступные элементы, которые можно назначить, и затем пользователь может перетащить из этого списка в один из трех других (которые указывают, что они хотят делать с выбранным элементом. Элементы также можно перетаскивать по этим трем спискам). .

Все работает хорошо, пока вы не используете фильтр, а затем перетаскиваете элемент в пустой список (как результат фильтра).

Я получаю сообщение об ошибке ниже, и оно выдается, когда элемент удаляется из исходного списка.

Specified argument was out of the range of valid values.
Parameter name: index

   at System.Windows.Data.PagedCollectionView.GetItemAt(Int32 index)
   at System.Windows.Data.PagedCollectionView.get_IsCurrentInSync()
   at System.Windows.Data.PagedCollectionView.AdjustCurrencyForRemove(Int32 index)
   at System.Windows.Data.PagedCollectionView.ProcessRemoveEvent(Object removedItem,     Boolean isReplace)
   at System.Windows.Data.PagedCollectionView.ProcessCollectionChanged                          (NotifyCollectionChangedEventArgs args)
   at System.Windows.Data.PagedCollectionView.b__0(Object sender, NotifyCollectionChangedEventArgs args)
   at System.Collections.Specialized.NotifyCollectionChangedEventHandler.Invoke(Object sender, NotifyCollectionChangedEventArgs e)
   at System.Collections.ObjectModel.ObservableCollection`1.OnCollectionChanged(NotifyCollectionChangedEventArgs e)
   at System.Collections.ObjectModel.ObservableCollection`1.RemoveItem(Int32 index)
   at System.Collections.ObjectModel.Collection`1.RemoveAt(Int32 index)

Кто-нибудь сталкивался с подобной ошибкой. Является ли PagedCollectionView (который передается наблюдаемой коллекции) неправильным способом решения этой проблемы?

Любое понимание кого-либо, кто сталкивался с этим, будет оценено.

...