/// <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; }
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; } }