Мы подозреваем, что могут быть проблемы с параллелизмом, но могут быть и другие причины. Как наш класс не реализует GetHashCode / Equals. Кто-нибудь еще сталкивался с такой проблемой?
У нас есть блокировка блока кода, который фактически добавляет и удаляет объекты из списка.
System.Reflection.TargetInvocationException: исключение имеет был брошен целью вызова. ---> System.ArgumentException: элемент с тем же ключом уже был добавлен. в System.ThrowHelper.ThrowArgumentException (ресурс ExceptionResource) в System.Collections.Generi c .Dictionary 2.Insert(TKey key, TValue value, Boolean add)
at Xceed.Wpf.DataGrid.CustomItemContainerGenerator.CreateGroupListFromCollection(IList collection, GeneratorNode parentNode)
at Xceed.Wpf.DataGrid.CustomItemContainerGenerator.HandleSameLevelGroupAddition(GeneratorNode firstChild, Int32& countAdded, NotifyCollectionChangedEventArgs e)
at Xceed.Wpf.DataGrid.CustomItemContainerGenerator.OnGroupsChanged(Object sender, NotifyCollectionChangedEventArgs e)
at Xceed.Wpf.DataGrid.CustomItemContainerGenerator.OnReceiveWeakEvent(Type managerType, Object sender, EventArgs e)
at Xceed.Wpf.DataGrid.CustomItemContainerGenerator.System.Windows.IWeakEventListener.ReceiveWeakEvent(Type managerType, Object sender, EventArgs e)
at System.Windows.WeakEventManager.ListenerList.DeliverEvent(Listener& listener, Object sender, EventArgs args, Type managerType)
at System.Windows.WeakEventManager.ListenerList
1.DeliverEvent (отправитель объекта, EventArgs e, тип managerType) в System. Windows .WeakEventManager.DeliverEvent (отправитель объекта , EventArgs арг) при System.Collections.Specialized.CollectionChangedEventManager.OnCollectionChanged (Object отправителя, NotifyCollectionChangedEventArgs арг) в System.Collections.ObjectModel.ReadOnlyObservableCollection 1.OnCollectionChanged(NotifyCollectionChangedEventArgs args)
at System.Collections.ObjectModel.ReadOnlyObservableCollection
1.HandleCollectionChanged (Object отправителя, NotifyCollectionChangedEventArgs е) при System.Collections.Specialized.NotifyCollectionChangedEventHandler .Invoke (Отправитель объекта, NotifyCollectionChangedEventArgs e) в System.Collections.ObjectModel.ObservableCollection 1.OnCollectionChanged(NotifyCollectionChangedEventArgs e)
at System.Collections.ObjectModel.ObservableCollection
1.InsertItem (индекс Int32, элемент T) в System.Collections.ObjectModel.Collection 1.Insert(Int32 index, T item)
at Xceed.Wpf.DataGrid.DataGridCollectionViewGroup.InsertGroup(Int32 index, DataGridCollectionViewGroup group)
at Xceed.Wpf.DataGrid.DataGridCollectionViewGroup.CreateSubGroup(Object groupName, Int32 level, ObservableCollection1 groupByList, List1 groupSortComparers)
at Xceed.Wpf.DataGrid.DataGridCollectionViewGroup.GetGroup(RawItem rawItem, Int32 level, CultureInfo culture, ObservableCollection1 groupByList, List1 groupSortComparers)
at Xceed.Wpf.DataGrid.DataGridCollectionView.GetRawItemNewGroup(RawItem rawItem)
at Xceed.Wpf.DataGrid.DataGridCollectionView.AddRawItemInGroup(RawItem rawItem)
at Xceed.Wpf.DataGrid.DataGridCollectionView.AddSourceItem(Int32 startIndex, IList items, Int32 newSourceItemCount)
at Xceed.Wpf.DataGrid.DataGridCollectionView.ExecuteSourceItemOperation(DeferredOperation deferredOperation, Boolean& refreshForced)
at Xceed.Wpf.DataGrid.DataGridCollectionViewBase.ExecuteOrQueueSourceItemOperation(DeferredOperation deferredOperation)
at Xceed.Wpf.DataGrid.DataGridCollectionViewBase.OnItemsSourceCollectionChanged(Object sender, NotifyCollectionChangedEventArgs e)
at Xceed.Wpf.DataGrid.DataGridCollectionViewBase.OnReceiveWeakEvent(Type managerType, Object sender, EventArgs e)
at Xceed.Wpf.DataGrid.DataGridCollectionViewBase.System.Windows.IWeakEventListener.ReceiveWeakEvent(Type managerType, Object sender, EventArgs e)
at System.Windows.WeakEventManager.ListenerList.DeliverEvent(Listener& listener, Object sender, EventArgs args, Type managerType)
at System.Windows.WeakEventManager.ListenerList
1.DeliverEvent (Событие отправителя объекта, , Введите managerType) в System. Windows .WeakEventManager.DeliverEvent (Отправитель объекта, аргументы EventArgs) в System.Collections.Specialized.Collectio nChangedEventManager.OnCollectionChanged (Отправитель объекта, аргументы NotifyCollectionChangedEventArgs) в System.Collections.ObjectModel.ObservableCollection 1.OnCollectionChanged(NotifyCollectionChangedEventArgs e)
at System.Collections.ObjectModel.ObservableCollection
1.InsertItem (индекс Int32, элемент T) в System.Collections.ObjectModel).