Beispiel #1
0
        private void ExecuteOnMainThread(TickerTabItemViewModel tab, StreamDataItem item)
        {
            if (tab == null)
            {
                return;
            }

            Application.Current.Dispatcher.BeginInvoke(DispatcherPriority.Background,
                                                       new Action(() =>
            {
                if (item is Quote)
                {
                    tab.OnNewStreamItem(item as Quote);
                }
                else if (item is Trade)
                {
                    tab.OnNewStreamItem(item as Trade);
                }
            }));

            if (TickerTabsViewModel.SelectedTab != tab)
            {
                tab.SetUnread();
            }
        }
Beispiel #2
0
 public void RemoveTab(TickerTabItemViewModel viewModel)
 {
     if (SelectedTab == viewModel && Tabs.Count == 1)
     {
         SelectedTab = null;
     }
     else
     {
         // TODO: activate next tab
         //var tabIndexToClose = Tabs.IndexOf(viewModel);
         //int nextTab;
         //if (tabIndexToClose == Tabs.Count)
         //    nextTab =
     }
     Tabs.Remove(viewModel);
 }
Beispiel #3
0
        public void AddTab(string ticker)
        {
            var tab = Tabs.FirstOrDefault(t => t.Ticker == ticker);

            if (tab != null)
            {
                SelectedTab = tab;
            }
            else
            {
                var tabView   = new TickerTabContent();
                var viewModel = new TickerTabItemViewModel(ticker, ticker, tabView);
                tabView.SetViewModel(viewModel);
                Tabs.Add(viewModel);
                SelectedTab = viewModel;
            }
        }