← 戻る

ArgumentOutOfRangeException в ThreadSafeObservableCollection

Михаил, подскажите, пожалуйста, отчего может возникать эта ошибка? Что-то связанное с добавлением новых ордеров или трейдов.. Откуда возникает, никак не пойму.

03.03.2011 20:24:48 [OpenWealth.App.Application_DispatcherUnhandledException] ERROR: System.Reflection.TargetInvocationException: Адресат вызова создал исключение. ---> System.ArgumentOutOfRangeException: Индекс должен находиться в границах этого списка. Имя параметра: index в System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource) в System.Collections.Generic.List1.Insert(Int32 index, T item) в System.Collections.ObjectModel.Collection1.InsertItem(Int32 index, T item) в System.Collections.ObjectModel.ObservableCollection1.InsertItem(Int32 index, T item) в Ecng.Xaml.ThreadSafeObservableCollection1.InsertItem(Int32 index, T item) в Ecng.Xaml.ThreadSafeObservableCollection`1.<>c__DisplayClass2.<InsertItem>b__0()

このトピックは参考になりましたか?

トピックを共有

コメント (3)

ログイン または アカウントを作成, コメントを残すにはログインまたは新規登録してください

Alexander
Alexander

Greene-nsk: Михаил, подскажите, пожалуйста, отчего может возникать эта ошибка? Что-то связанное с добавлением новых ордеров или трейдов.. Откуда возникает, никак не пойму.

03.03.2011 20:24:48 [OpenWealth.App.Application_DispatcherUnhandledException] ERROR: System.Reflection.TargetInvocationException: Адресат вызова создал исключение. ---> System.ArgumentOutOfRangeException: Индекс должен находиться в границах этого списка. Имя параметра: index в System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource) в System.Collections.Generic.List1.Insert(Int32 index, T item) в System.Collections.ObjectModel.Collection1.InsertItem(Int32 index, T item) в System.Collections.ObjectModel.ObservableCollection1.InsertItem(Int32 index, T item) в Ecng.Xaml.ThreadSafeObservableCollection1.InsertItem(Int32 index, T item) в Ecng.Xaml.ThreadSafeObservableCollection`1.<>c__DisplayClass2.<InsertItem>b__0()

Какое значение передаётся в качестве первого в методе Insert?

Greene-nsk
Greene-nsk 著者

Alexander:

Greene-nsk: Михаил, подскажите, пожалуйста, отчего может возникать эта ошибка? Что-то связанное с добавлением новых ордеров или трейдов.. Откуда возникает, никак не пойму.

03.03.2011 20:24:48 [OpenWealth.App.Application_DispatcherUnhandledException] ERROR: System.Reflection.TargetInvocationException: Адресат вызова создал исключение. ---> System.ArgumentOutOfRangeException: Индекс должен находиться в границах этого списка. Имя параметра: index в System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource) в System.Collections.Generic.List1.Insert(Int32 index, T item) в System.Collections.ObjectModel.Collection1.InsertItem(Int32 index, T item) в System.Collections.ObjectModel.ObservableCollection1.InsertItem(Int32 index, T item) в Ecng.Xaml.ThreadSafeObservableCollection1.InsertItem(Int32 index, T item) в Ecng.Xaml.ThreadSafeObservableCollection`1.<>c__DisplayClass2.<InsertItem>b__0()

Какое значение передаётся в качестве первого в методе Insert?

Я не делаю нигде явно Insert. Делаю так: _tradesGrid.Trades.Clear(); _ordersGrid.Orders.Clear();

... sAdapter.PositionManager.Trades.ForEach(_tradesGrid.Trades.Add); sAdapter.Orders.ForEach(_ordersGrid.Orders.Add); sAdapter.StopOrders.ForEach(_ordersGrid.Orders.Add);

RyleT
RyleT

Мне кажется что дело в том, что прежде чем добавлять новые элементы в коллекцию, нужно проверить завершилась ли операция Clear(). Например, сделать проверку Count > 0