private void FastGridUserHitCell(object sender, MouseEventArgs mouseEventArgs, int rowIndex, FastColumn col) { var filterObject = (FilterObject)fastGrid.rows[rowIndex].ValueObject; if (col.PropertyName == filterObject.Property(p => p.Selected)) { filterObject.Selected = !filterObject.Selected; fastGrid.UpdateRow(rowIndex, filterObject); fastGrid.InvalidateRow(rowIndex); UpdateExpression(); } if (col.PropertyName == filterObject.Property(p => p.Operator)) { operatorsContextMenuStrip.Tag = filterObject; foreach (ToolStripMenuItem item in operatorsContextMenuStrip.Items) { item.Checked = PerformerCriteriaFunction.GetExpressionOperatorString(filterObject.Operator) == item.Text; } operatorsContextMenuStrip.Show(fastGrid, fastGrid.GetCellCoords(col, rowIndex)); } }
// конкатенация выражения этого объекта с существующим выражением; // используется для представления формулы из FilterObject-ов в виде строки public string UpdateExpression(string expression) { return(expression + (!string.IsNullOrEmpty(expression) ? "&" : "") + "(" + Name + PerformerCriteriaFunction.GetExpressionOperatorString(Operator) + Value + ")"); }