// undo/redo row sizes void flex_ResizingRow(object sender, CellRangeEventArgs e) { if (!(_pendingAction is RowResizeAction)) { _pendingAction = new RowResizeAction(_flex, e); } }
// do something when the value of a cell changes void cf_CellValueChanged(object sender, CellRangeEventArgs e) { Console.WriteLine("the value of cell ({0}, {1}) has changed to {2}", e.Row, e.Column, _flex[e.Row, e.Column]); // update "Fault" column when "Enable" changes var col = _flex.Columns[e.Column]; if (col.DataType == typeof(bool) && col.ColumnName.EndsWith("Enable")) { // get current 'Enable' value var value = (bool)_flex[e.Row, e.Column]; // set corresponding 'Fault' value // (in this case, a function of the 'Enable' cell, but could be anything) System.Diagnostics.Debug.Assert(_flex.Columns[e.Column + 1].DataType == typeof(FaultType)); _flex[e.Row, e.Column + 1] = value ? FaultType.None : FaultType.Red; // refresh cell _flex.Invalidate(new CellRange(e.Row, e.Column + 1)); // if this is the Input.Enable cell, then enable/disable entire row if (col.ColumnName == "Input.Enable") { var row = _flex.Rows[e.Row]; row.Foreground = value ? _brBlack : _brGray; row.IsReadOnly = !value; } } }
//------------------------------------------------------------------------- #region ** event handlers // undo/redo column sizes void flex_ResizingColumn(object sender, CellRangeEventArgs e) { if (!(_pendingAction is ColumnResizeAction)) { _pendingAction = new ColumnResizeAction(_flex); } }
void flex_ResizedRow(object sender, CellRangeEventArgs e) { if (_pendingAction is RowResizeAction && _pendingAction.SaveNewState()) { _flex.UndoStack.AddAction(_pendingAction); } _pendingAction = null; }
// reset column selection when the regular selection changes void selectionChanged(object sender, CellRangeEventArgs e) { if (!_selecting) { foreach (var c in Columns) { c.Selected = false; } } }
// make all unbound grid columns the same width after they are resized private void _flexUnbound_ResizedColumn(object sender, CellRangeEventArgs e) { var col = _flexUnbound.Columns[e.Column]; if (col.ActualWidth > 0) { _flexUnbound.Columns.DefaultSize = col.ActualWidth; } col.Width = new GridLength(0, GridUnitType.Auto); }
// resize all selected columns at once void resizedColumn(object sender, CellRangeEventArgs e) { var col = Columns[e.Column]; if (col.Selected) { foreach (var c in Columns.Selected) { c.Width = col.Width; } } }
void _flexSelectionMode_SelectionChanged(object sender, CellRangeEventArgs e) { var fg = _flexSelectionMode; var customers = fg.SelectedItems; _lblSelState.Text = string.Format("{0} item{1} selected, {2} active, total weight: {3:n2}", customers.Count, customers.Count == 1 ? string.Empty : "s", (from Customer c in customers where c.Active select c).Count(), (from Customer c in customers select c.Weight).Sum()); }
void _owner_SelectionChanged(object sender, CellRangeEventArgs e) { TextBox tb = null; if (_tbTextRange.IsFocused) { tb = _tbTextRange; _textRange = _owner.Selection; } else { tb = _tbLocationRange; _locationRange = _owner.Selection; } tb.Text = _owner.GetAddress(_owner.Selection, true); }
//----------------------------------------------------------------- #region ** event handlers // handle user selection on the dropdown void _flex_SelectionChanged(object sender, CellRangeEventArgs e) { // not if we're updating if (_updatingSelection) { _updatingSelection = false; return; } // update textbox to match drop-down selection UpdateComboText(); // close dropdown IsDroppedDown = false; // update selected index SetSelectedIndex(_flex.SelectedIndex); }
private void fgFolder_SelectionChanged(object sender, CellRangeEventArgs e) { int index = e.Row; // 选择的行的index if (index >= 0) { SetEnabled(false); int id = (int)flxFolder.Rows[index].Tag; m_FolderHelper.GetFiles(id); // 订阅事件 m_FolderHelper.onLoadFileFinish -= new EventHandler(LoadFileFinish); m_FolderHelper.onLoadFileFinish += new EventHandler(LoadFileFinish); flxFiles.ItemsSource = null; } }
protected override void OnSelectionChanged(CellRangeEventArgs e) { base.OnSelectionChanged(e); // find selected appointments List <Appointment> appsForSelect = new List <Appointment>(); var range = Selection; if (range.IsValid && range.BottomRow < Rows.Count) { for (int i = range.TopRow; i <= range.BottomRow; i++) { Appointment app = this.GetRowAppointment(i); if (app != null) { appsForSelect.Add(app); } } } bool needUpdate = _selectedApps.Count != appsForSelect.Count; if (!needUpdate) { foreach (var app in appsForSelect) { if (!_selectedApps.Contains(app)) { needUpdate = true; break; } } } if (needUpdate) { _selectedApps.Clear(); _selectedApps.AddRange(appsForSelect); OnSelectedAppointmentsChanged(null); } }
private void Grid_SelectionChanged(object sender, CellRangeEventArgs e) { string selectedText = grid[e.CellRange.Row, e.CellRange.Column].ToString(); labelShowName.Content = selectedText; labelShowTimes.Content = ""; for (int c = 0; c < grid.Columns.Count; c++) { string dayName = grid.ColumnHeaders[1, c].ToString(); string startTime = ""; for (int r = 0; r < grid.Rows.Count; r++) { string cellValue = grid[r, c].ToString(); if (cellValue.Equals(selectedText)) { if (startTime == "") { startTime = grid.RowHeaders[r, 0].ToString(); labelShowTimes.Content = labelShowTimes.Content + dayName + " " + startTime + "-"; } } else if (startTime != "" && labelShowTimes.Content.ToString().EndsWith("-")) { string endTime = grid.RowHeaders[r, 0].ToString(); labelShowTimes.Content = labelShowTimes.Content + endTime + "\n"; } // handle last row exception if (r == grid.Rows.Count - 1 && startTime != "" && labelShowTimes.Content.ToString().EndsWith("-")) { labelShowTimes.Content = labelShowTimes.Content + "19:00\n"; } } } }
private void Grid_SelectionChanged(object sender, CellRangeEventArgs e) { this.selectedRange = e.CellRange; }
//------------------------------------------------------------------------- #region ** ctor public RowResizeAction(C1FlexGridBook flex, CellRangeEventArgs e) { _flex = flex; _row = e.Row; _oldSize = _flex.Rows[_row].Height; }
// record original sort values void flex_SortingColumn(object sender, CellRangeEventArgs e) { _pendingAction = new SortAction(_flex); }