public void MoveSelectedDown() { var item1 = SelectedVisibleColumn; var item2 = SelectedColumns[SelectedColumns.IndexOf(item1) + 1]; SelectedColumns.Swap(item1, item2); SelectedVisibleColumn = item1; }
public void HideColumn() { var oldIndex = SelectedColumns.IndexOf(SelectedVisibleColumn); int newIndex = oldIndex; if (newIndex >= (SelectedColumns.Count - 1)) { --newIndex; } var col = SelectedVisibleColumn; SelectedVisibleColumn = null; col.Visible = false; SelectedVisibleColumn = (newIndex >= 0) ? SelectedColumns[newIndex] : null; }
public void MoveDown() { if (SelectedColumns.Count == 0 || SelectedColumns.Last().IsSelected) { return; } var selected = SelectedColumns.Where(c => c.IsSelected).Reverse().ToArray(); foreach (var item in selected) { var index = SelectedColumns.IndexOf(item); SelectedColumns.RemoveAt(index); SelectedColumns.Insert(index + 1, item); } }
public ColumnSelectorVM(IEnumerable <GuiGridColumn> columns, OnSaveDelegate onSave) { _onSave = onSave; CloseCommand = new DelegateCommand( o => true, o => CloseAction() ); SaveCommand = new DelegateCommand( o => true, o => Save() ); UpColumnCommand = new DelegateCommand( o => SelectedSelectedColumn != null && SelectedColumns.IndexOf(SelectedSelectedColumn) > 0, o => UpColumn(SelectedSelectedColumn) ); DownColumnCommand = new DelegateCommand( o => SelectedSelectedColumn != null && SelectedColumns.IndexOf(SelectedSelectedColumn) < SelectedColumns.Count - 1, o => DownColumn(SelectedSelectedColumn) ); AddColumnCommand = new DelegateCommand( o => SelectedAvailableColumn != null, o => AddColumn(SelectedAvailableColumn) ); RemoveColumnCommand = new DelegateCommand( o => SelectedSelectedColumn != null, o => RemoveColumn(SelectedSelectedColumn) ); ResetDefaultsCommand = new DelegateCommand( o => true, o => ResetDefaults() ); SetColumns(columns); }
/// <summary> /// Move column down in order /// </summary> /// <param name="column"></param> private void DownColumn(GuiGridColumn column) { int idx = SelectedColumns.IndexOf(column); SelectedColumns.Move(idx, idx + 1); }