private async void AddQuote()
        {
            string quote = contractTextBox.SelectedItem == null ? contractTextBox.Filter : contractTextBox.SelectedItem.ToString();

            if (!FutureOptionList.Any((c) => string.Compare(c.Contract, quote, true) == 0))
            {
                MessageBox.Show("输入合约" + quote + "不存在");
                contractTextBox.Filter = string.Empty;
                return;
            }

            ClientDbContext.SaveMarketContract(MarketDataHandler.MessageWrapper.User.Id,
                                               quote, FilterSettingsWin.FilterId);

            var item = QuoteVMCollection.FirstOrDefault(c => c.Contract == quote);

            if (item != null)
            {
                quoteListView.SelectedItem = item;
            }
            else
            {
                var mktDataVM = await MarketDataHandler.SubMarketDataAsync(quote);

                if (mktDataVM != null)
                {
                    QuoteVMCollection.Add(mktDataVM);
                }
            }
        }
 public void GetContractInfo()
 {
     FutureOptionList.AddRange(ClientDbContext.GetContractFromCache((int)ProductType.PRODUCT_FUTURE));
     FutureOptionList.AddRange(ClientDbContext.GetContractFromCache((int)ProductType.PRODUCT_OPTIONS));
     FutureOptionList.AddRange(ClientDbContext.GetContractFromCache((int)ProductType.PRODUCT_ETFOPTION));
     FutureOptionList.AddRange(ClientDbContext.GetContractFromCache((int)ProductType.PRODUCT_STOCK));
     contractTextBox.Provider = new SuggestionProvider((string c) => { return(FutureOptionList.Where(ci => ci.Contract.StartsWith(c, true, null)).Select(cn => cn.Contract)); });
 }
        public void Initialize()
        {
            _viewSource.Source        = QuoteVMCollection;
            quoteListView.ItemsSource = _viewSource.View;
            mColumns = ColumnObject.GetColumns(quoteListView);
            FilterSettingsWin.UserID = MarketDataHandler.MessageWrapper.User.Id;

            FutureOptionList.AddRange(ClientDbContext.GetContractFromCache((int)ProductType.PRODUCT_FUTURE));
            FutureOptionList.AddRange(ClientDbContext.GetContractFromCache((int)ProductType.PRODUCT_OPTIONS));

            QuoteChanged = _viewSource.View as ICollectionViewLiveShaping;
            if (QuoteChanged.CanChangeLiveFiltering)
            {
                QuoteChanged.LiveFilteringProperties.Add("Exchange");
                QuoteChanged.LiveFilteringProperties.Add("Contract");
                QuoteChanged.IsLiveFiltering = true;
            }
        }