private void OnUpdateReceived(object sender, SharedData.poco.updates.ClientUpdateEventArgs e) { App.Current.Dispatcher.Invoke((Action) delegate { if (e.ClientQuotes.ContainsKey(TradingSymbol)) { SharedData.poco.Quote quote = e.ClientQuotes[TradingSymbol]; CurrentPrice = string.Format("{0}/{1}", quote.Bid, quote.Ask); } }); }
private void OnUpdateReceived(object sender, SharedData.poco.updates.ClientUpdateEventArgs e) { App.Current.Dispatcher.Invoke((Action) delegate { if (null != e.ClientQuotes && e.ClientQuotes.Count > 0) { lock (lockQuotes) { int currentIndex = QuoteCollectionView.CurrentPosition; Quotes.Clear(); Quotes.AddRange(e.ClientQuotes.Values); QuoteCollectionView.MoveCurrentToPosition(currentIndex); QuoteCollectionView.Refresh(); } } }); }
private void OnUpdateReceived(object sender, SharedData.poco.updates.ClientUpdateEventArgs e) { App.Current.Dispatcher.Invoke((Action) delegate { //quotes if (null != e.ClientQuotes && e.ClientQuotes.Count > 0) { lock (lockQuotes) { int currentIndex = QuoteCollectionView.CurrentPosition; Quotes.Clear(); Quotes.AddRange(e.ClientQuotes.Values); QuoteCollectionView.MoveCurrentToPosition(currentIndex); QuoteCollectionView.Refresh(); } } //current trades if (null != e.Positions && e.Positions.Count > 0) { lock (lockTrades) { int currentIndex = TradesCollectionView.CurrentPosition; Trades.Clear(); Trades.AddRange(e.Positions.Values); if (TradesCollectionView.Count >= currentIndex) { TradesCollectionView.MoveCurrentToPosition(currentIndex); } TradesCollectionView.Refresh(); } } else { Trades.Clear(); TradesCollectionView.Refresh(); } //net trades if (null != e.NetPosition && e.NetPosition.Count > 0) { int currentIndex = NetTradesCollectionView.CurrentPosition; NetTrades.Clear(); NetTrades.AddRange(e.NetPosition.Values); if (NetTradesCollectionView.Count >= currentIndex) { NetTradesCollectionView.MoveCurrentToPosition(currentIndex); } NetTradesCollectionView.Refresh(); } else { NetTrades.Clear(); NetTradesCollectionView.Refresh(); } }); }