private void RefrashLGridList() { LevelsFree.DoubleLevel selectLevel = null; if (dataGridViewLList.SelectedRows.Count > 0) { var row = dataGridViewLList.SelectedRows.GetFirst(); if (row.NotIsNull()) { selectLevel = row.GetElementTag <LevelsFree.DoubleLevel>(); } } dataGridViewLList.Rows.Clear(); if (Levels.Count > 0) { foreach (var el in Levels.ToArray) { if (el.NotIsNull()) { var newRow = (DataGridViewRow)dataGridViewLList.Rows[0].Clone(); newRow.Cells[0].Value = el.Top; newRow.Cells[1].Value = el.Bottom; newRow.Cells[2].Value = el.DateLeft; newRow.Cells[3].Value = el.DateRight; newRow.Tag = el; dataGridViewLList.Rows.Add(newRow); if (selectLevel.NotIsNull()) { if (el == selectLevel) { newRow.Selected = true; } } } } } }
/// <summary> /// Инициализация панели с уровнями /// </summary> private void InitPanelLevels() { this.Levels = new LevelTools(Securities, Global.GetPathData()); checkBoxVisibleLevels.Click += (s, e) => { if (checkBoxVisibleLevels.Checked) { GraphicStock.Levels.Visible = false; } else { GraphicStock.Levels.Visible = true; } }; this.buttonAddLevel.Click += (s, e) => { var top = numericUpDownPriceLevel.Value; var bot = numericUpDownPriceLevel2.Value; var datetimeleft = textBoxDateTimeLevel1.Text; var datetimeright = textBoxDateTimeLevel2.Text; if (top < bot) { var tmp = top; top = bot; bot = tmp; } var value = new LevelsFree.DoubleLevel() { Top = top, Bottom = bot, DateLeft = datetimeleft.Empty() ? null : new DateMarket(datetimeleft), DateRight = datetimeright.Empty() ? null : new DateMarket(datetimeright), }; this.Levels.Add(value); this.UpdatePanelLevels(); }; dataGridViewLList.SelectionChanged += (s, e) => { if (dataGridViewLList.SelectedRows.NotIsNull()) { foreach (var row in dataGridViewLList.SelectedRows) { if (row is DataGridViewRow) { var level = (LevelsFree.DoubleLevel)((DataGridViewRow)row).Tag; if (level.NotIsNull()) { numericUpDownPriceLevel.Value = level.Top; numericUpDownPriceLevel2.Value = level.Bottom; textBoxDateTimeLevel1.Text = level.DateLeft.NotIsNull() ? level.DateLeft.ToString() : ""; textBoxDateTimeLevel2.Text = level.DateRight.NotIsNull() ? level.DateRight.ToString() : ""; } } } } }; checkBoxPLAddRectLevlOnGraphic.Click += (s, e) => { if (checkBoxPLAddRectLevlOnGraphic.Checked) { ResetButtonLevels(); checkBoxPLAddRectLevlOnGraphic.Checked = true; GraphicStock.Levels.TypeLevel = LevelsFree.TYPE_LEVELS.Rectangle; checkBoxPLAddRectLevlOnGraphic.BackColor = Color.LightBlue; } else { ResetButtonLevels(); } }; checkBoxPLAddLevelOnGraphic.Click += (s, e) => { if (checkBoxPLAddLevelOnGraphic.Checked) { ResetButtonLevels(); checkBoxPLAddLevelOnGraphic.Checked = true; GraphicStock.Levels.TypeLevel = LevelsFree.TYPE_LEVELS.Vector; checkBoxPLAddLevelOnGraphic.BackColor = Color.LightBlue; } else { ResetButtonLevels(); } }; this.buttonDelLevel.Click += (s, e) => { foreach (var row in dataGridViewLList.SelectedRows) { if (row is DataGridViewRow) { var rowEl = (DataGridViewRow)row; if (rowEl.Tag.NotIsNull()) { Levels.Delete((LevelsFree.DoubleLevel)rowEl.Tag); } } } }; AutoControls <LevelsFree.DoubleLevel> .EventAutoOrder eventLevels = (item) => { this.UpdatePanelLevels(); }; Levels.OnDelete += eventLevels; Levels.OnAdd += eventLevels; Levels.OnEdit += eventLevels; buttonEditLevel.Click += (s, e) => { foreach (var row in dataGridViewLList.SelectedRows) { if (row is DataGridViewRow) { var rowEl = (DataGridViewRow)row; var level = rowEl.GetElementTag <LevelsFree.DoubleLevel>(); if (level.NotIsNull()) { Qlog.CatchException(() => { level.Top = numericUpDownPriceLevel.Value; level.Bottom = numericUpDownPriceLevel2.Value; if (!textBoxDateTimeLevel1.Text.Empty()) { level.DateLeft.SetDateTime(Convert.ToDateTime(textBoxDateTimeLevel1.Text)); } if (!textBoxDateTimeLevel2.Text.Empty()) { level.DateRight.SetDateTime(Convert.ToDateTime(textBoxDateTimeLevel2.Text)); } Levels.Edit(level); }, "", () => { MessageBox.Show("Значение даты не распознано!"); }); } } } }; }