/// <summary>
        /// If we delete ControlMarket we need to shift
        /// elements for making correct order.
        /// For each elements with StockNum more than
        /// deleted	do
        /// 1) Reduce StockNum
        /// 2) Set correct column.
        ///
        /// Note.
        /// 1) ControlMarket's column is even (0,2,4),
        /// GridSplitter is odd (1,3,5).
        /// 2)ControlMarket was previously removed from
        /// _lstControlMarket in DeleteControlMarket method
        ///
        /// Call from
        /// DeleteExistingStock
        ///  </summary>
        public void ShiftStockNumber(int stockNumDeleted)
        {
            MainWindow mw = (MainWindow)CUtilWin.FindWindow <MainWindow>();

            //note ! all ControlMarket have view model

            //shift ControlMarket StockNum and column
            _lstControlMarket.ForEach(controlMarket =>
            {
                if (controlMarket.StockNum > stockNumDeleted)
                {
                    controlMarket.StockNum--;
                    Grid.SetColumn(controlMarket, 2 * controlMarket.StockNum);    //even column (0,2,4, etc)
                }
            }
                                      );

            //shift GridSplitter StockNum and column
            foreach (var child in mw.GridMarket.Children)
            {
                if (child is GridSplitter)
                {
                    GridSplitter gs = (GridSplitter)child;
                    {
                        if ((int)gs.Tag > stockNumDeleted)
                        {
                            int newStockNum = ((int)gs.Tag - 1);
                            gs.Tag = newStockNum;
                            Grid.SetColumn(gs, 2 * newStockNum + 1);                       //odd column (1,3,5, etc)
                        }
                    }
                }
            }
        }
        void DatagridTickers_PreviewMouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
        {
            try
            {
                var dg = (DataGrid)sender;



                int conNum = (int)dg.Tag;

                int rowNum = CUtilWPF.GetDataGridClickedRowNum(e);

                CTIckerData tickerData = (CTIckerData)dg.Items[rowNum];
                string      ticker     = tickerData.TickerName;



                if (KernelTerminal.ViewModelDispatcher.IsMarketViewModelExist(ticker))
                {
                    AllertWindow win = new AllertWindow("Невозможно выбрать инструмент. Стакан с таким инструментом уже существует.");


                    win.Topmost = true;

                    Window wn = (Window)win;


                    // CUtilWin.ShowActivated(ref wn);



                    Window windowRoot = (Window)CUtilWin.FindWindow <AvailableTickersWindow>();
                    CUtilWin.ShowDialogOnCenter(wn, windowRoot);



                    //CUtilWin.ShowDialogOnCenter(ref wn, _);

                    //win.Show();

                    return;
                }

                //note put to method marketViewModel as parameters
                MarketViewModel currMarketViewModel = _winAvailTicks.CurrentMarketViewModel;
                KernelTerminal.ChangeMarketInstrument(conNum, tickerData, currMarketViewModel);


                // (new Task(KernelTerminal.TaskSaveVisualConf)).Start();

                _winAvailTicks.Close();
            }
            catch (Exception exc)
            {
                Error("DatagridTickers_PreviewMouseDown", exc);
            }
        }
        private void SubscribeMainWinEvents(ref ControlMarket controlMarket)
        {
            MainWindow mw = (MainWindow)CUtilWin.FindWindow <MainWindow>();

            controlMarket.ButtonClose.PreviewMouseUp             += mw.ControlStock_ButtonClose_PreviewMouseUp;
            controlMarket.ButtonMaximizeNormalize.PreviewMouseUp += mw.ControlStock_ButtonMaximizeNomalize_PreviewMouseUp;
            controlMarket.ButtonMinimize.PreviewMouseUp          += mw.ControlStock_ButtonMinimize_PreviewMouseUp;
            controlMarket.ButtonMaximizeNormalize.PreviewMouseUp += controlMarket.ButtonMaximizeNmormilize_PreviewMouseUp;
        }
示例#4
0
        public ConnectionsWindow()
        {
            InitializeComponent();

            GUIDispatcher = Dispatcher.CurrentDispatcher;

            ConnectionTable.DelOpenAuthWindow = OpenAuthWindow;
            this.WindowStyle = System.Windows.WindowStyle.ToolWindow;

            var win = CUtilWin.FindWindow <MainWindow>();

            if (win != null)
            {
                this.Left = win.Left + 20;
                this.Top  = win.Top + 10;
            }
        }