private void ClientGotInitialPosition(Position obj) { System.Windows.Application.Current.Dispatcher.Invoke(() => { if (_positiontracker.IsTracked(obj.FullSymbol)) { int pos = PositionTable.Select(row => row.Symbol).ToList().IndexOf(obj.FullSymbol); // should exist PositionTable[pos].AvgPrice = obj.AvgPrice; PositionTable[pos].Size = obj.Size; PositionTable[pos].ClosePL = obj.ClosedPL; PositionTable[pos].OpenPL = obj.OpenPL; } else { int count = PositionTable.Count; // ?? A first chance exception system notsupportedexception presentationframework dll ?? PositionTable.Add(new PositionEntry(count, obj.FullSymbol, obj.AvgPrice, obj.Size, obj.ClosedPL, obj.OpenPL)); } }); _positiontracker.Adjust(obj); }