Я столкнулся с той же проблемой сегодня при одновременной очистке ObservableCollection нажатием кнопки.Это мой обходной путь, хотя я был бы признателен, если бы кто-то поделился дополнительной информацией об этом.
public static void RemoveAll<T>(this IList<T> collection)
{
while (collection.Count > 0)
{
if (collection.Count == 1)
{
try
{
collection.RemoveAt(collection.Count - 1);
}
catch (ArgumentOutOfRangeException)
{
if (collection.Count > 0)
throw;
}
}
else
collection.RemoveAt(collection.Count - 1);
}
}
// РЕДАКТИРОВАТЬ
Хорошо, теперь граф выдал то же исключение, поэтому я решил копать глубжеи найдено:
w System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource)
w Infragistics.FastItemDateTimeColumn.get_Item(Int32 index)
w Infragistics.Controls.Charts.OrdinalTimeXAxis.UpdateActualRange()
w Infragistics.Controls.Charts.OrdinalTimeXAxis.UpdateRangeOverride()
w Infragistics.Controls.Charts.Axis.UpdateRange(Boolean immediate)
w Infragistics.Controls.Charts.OrdinalTimeXAxis.OnFastItemsSourceEvent(FastItemsSourceEventArgs e)
w Infragistics.Controls.Charts.CategoryAxisBase.HandleFastItemsSourceEvent(Object sender, FastItemsSourceEventArgs e)
w System.EventHandler`1.Invoke(Object sender, TEventArgs e)
w Infragistics.FastItemsSource.RaiseDataSourceEvent(FastItemsSourceEventAction action, Int32 position, Int32 count)
w Infragistics.FastItemsSource.dataSourceRemove(Int32 position, IList oldItems)
w Infragistics.FastItemsSource.OnItemsSourceEventProxyWeakCollectionChanged(IFastItemsSource fastItemsSource, Object sender, NotifyCollectionChangedEventArgs e)
w Infragistics.FastItemsSource.<Attach>b__16_0(IFastItemsSource fastItemsSource, Object sender, NotifyCollectionChangedEventArgs e)
w Infragistics.ItemSourceEventProxy.collectionChanged(Object sender, NotifyCollectionChangedEventArgs e)
w System.Collections.Specialized.NotifyCollectionChangedEventHandler.Invoke(Object sender, NotifyCollectionChangedEventArgs e)
w System.Collections.ObjectModel.ObservableCollection`1.OnCollectionChanged(NotifyCollectionChangedEventArgs e)
w System.Collections.ObjectModel.ObservableCollection`1.RemoveItem(Int32 index)
w System.Collections.ObjectModel.Collection`1.RemoveAt(Int32 index)
w CryptoBot.Source.Common.Extensions.Extensions.RemoveAll[T](IList`1 collection) w G:\Moje Pliki\Programowanie\CSharp\Projects\CryptoBot\Cryptobot\CryptoBot\Source\Common\Extensions\Extensions.cs:wiersz 1035
Таким образом, в подобных сценариях коллекция, скорее всего, связана с чем-то, что использует некоторые асинхронные вызовы внутри.Есть ли у вас доступ к нему или нет.