internal override bool Perform() { DataGridViewRow changedRow = _dgvVariables.Rows[_eventArgs.RowIndex]; VarConfig.VariableRow variableRow = changedRow.Tag as VarConfig.VariableRow; if (_eventArgs.ColumnIndex == _dgvVariables.Columns.IndexOf(_variablesForm.colVariableName)) { //variables name edited if (variableRow.Name != changedRow.Cells[_eventArgs.ColumnIndex].Value.ToString()) { //only (change and) return true if actually changed variableRow.Name = changedRow.Cells[_eventArgs.ColumnIndex].Value.ToString(); int columnIndexAutoLabel = _variablesForm.dgvVariables.Columns.IndexOf(_variablesForm.colAutomaticLabel); variableRow.AutoLabel = changedRow.Cells[columnIndexAutoLabel].Value.ToString(); return(true); } } if (_eventArgs.ColumnIndex == _dgvVariables.Columns.IndexOf(_variablesForm.colMonetary)) {//checkbox monetary edited bool newValue_IsMonetary = (bool)changedRow.Cells[_eventArgs.ColumnIndex].Value; if (VariablesManager.IsMonetary(variableRow) && !newValue_IsMonetary) {//current value monetary, new value non-monetary variableRow.Monetary = "0"; return(true); } if (!VariablesManager.IsMonetary(variableRow) && newValue_IsMonetary) {//current value non-monetary, new value monetary variableRow.Monetary = "1"; return(true); } } if (_eventArgs.ColumnIndex == _dgvVariables.Columns.IndexOf(_variablesForm.colHHLevel)) {//checkbox HH Level edited bool newValue_IsHHLevel = (bool)changedRow.Cells[_eventArgs.ColumnIndex].Value; if (VariablesManager.IsHHLevel(variableRow) && !newValue_IsHHLevel) {//current value hh-level, new value ind-level variableRow.HHLevel = "0"; return(true); } if (!VariablesManager.IsHHLevel(variableRow) && newValue_IsHHLevel) {//current value ind-level, new value hh-level variableRow.HHLevel = "1"; return(true); } } return(false); }
internal override bool Perform() { VarConfig.VariableRow variableRow = _varConfigFacade.AddVariable(); int index = 0; if (_dgvVariables.SelectedRows.Count == 1) { index = _dgvVariables.Rows.IndexOf(_dgvVariables.SelectedRows[0]) + 1; } _dgvVariables.Rows.Insert(index, variableRow.Name, VariablesManager.IsMonetary(variableRow), VariablesManager.IsHHLevel(variableRow), false, variableRow.AutoLabel); _dgvVariables.Rows[index].Tag = variableRow; _dgvVariables.Rows[index].Cells[0].Selected = true; //set input focus to just added row (selecting row instead of cell does not work) _dgvVariables.Select(); //grid view must be selected too, otherwise another list may have the input focus return(true); }