PageCollectionView[Bug],使用Filter的时候,删除集合中的元素,会导致ArgumentOutOfRangeException...
生活随笔
收集整理的這篇文章主要介紹了
PageCollectionView[Bug],使用Filter的时候,删除集合中的元素,会导致ArgumentOutOfRangeException...
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?
PageCollectionView,沒有使用Filter的時候一切正常;當使用Filter的時候,刪除集合中的元素,會拋出如下異常:
1: 指定的參數已超出有效值的范圍。\n參數名: index 2: 位于 System.Windows.Data.PagedCollectionView.GetItemAt(Int32 index)\n 3: 位于 System.Windows.Data.PagedCollectionView.get_IsCurrentInSync()\n 4: 位于 System.Windows.Data.PagedCollectionView.AdjustCurrencyForRemove(Int32 index)\n 5: 位于 System.Windows.Data.PagedCollectionView.ProcessRemoveEvent(Object removedItem, Boolean isReplace)\n 6: 位于 System.Windows.Data.PagedCollectionView.ProcessCollectionChanged(NotifyCollectionChangedEventArgs args)\n 7: 位于 System.Windows.Data.PagedCollectionView.<.ctor>b__0(Object sender, NotifyCollectionChangedEventArgs args)\n 8: 位于 System.Collections.Specialized.NotifyCollectionChangedEventHandler.Invoke(Object sender, NotifyCollectionChangedEventArgs e)\n 9: 位于 System.Collections.ObjectModel.ObservableCollection`1.OnCollectionChanged(NotifyCollectionChangedEventArgs e)\n 位于 System.Collections.ObjectModel.ObservableCollection`1.RemoveItem(Int32 index)\n 10: 位于 System.Collections.ObjectModel.Collection`1.RemoveAt(Int32 index)\n 11: 位于 System.Collections.ObjectModel.Collection`1.Remove(T item)\n?
搜了一圈,找到這篇:ArgumentOutOfRangeException in PageCollectionView
發現是PagedCollectionView的一個bug;更新到最新的SilverLight5,Bug依舊存在。沒辦法,只好從這里把PagedCollectionView的源代碼抓下來,調整并重新編譯:
1: bool needToRemove = (this.PageSize == 0 && removeIndex >= 0) || ( && internalRemoveIndex < (this.PageIndex + 1) * this.PageSize);?
記錄一下。
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的PageCollectionView[Bug],使用Filter的时候,删除集合中的元素,会导致ArgumentOutOfRangeException...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Reference 字段的详情弹窗ico
- 下一篇: about osgeo中国