private void FilterOnFilterChanged(object sender, FilterChangedEventArgs args) { var clauseNode = (args.CurrentNode) as ClauseNode; if (clauseNode != null && recursive && clauseNode.Operation == ClauseType.AnyOf && args.Action == FilterChangedAction.ValueChanged) { recursive = false; string propertyName = ((ClauseNode)args.CurrentNode).FirstOperand.PropertyName; var inOperator = (InOperator)FilterControlHelpers.ToCriteria(args.CurrentNode); List <ITreeNode> allChildTreeNodes = GetAllChildTreeNodes(inOperator, propertyName); if (allChildTreeNodes.Count > 0) { ((FilterControl)sender).FilterCriteria = new InOperator(propertyName, allChildTreeNodes); } RecursiveFilterPopLookUpTreeSelectionSimpleAction.Active[ClauseType.AnyOf.ToString()] = true; } }
protected override void ChangeElement(NodeEditableElement element, object value) { if (element.ElementType == ElementType.Operation && !Enum.IsDefined(typeof(ClauseType), value)) { Model.BeginUpdate(); Operation = (ClauseType)value; var clauseType = (int)value; if (clauseType == ClauseTypeEnumHelper.FullText) { FilterControlHelpers.ForceAdditionalParamsCount(AdditionalOperands, 1); } Model.EndUpdate(FilterChangedAction.OperationChanged, this); FilterControlFocusInfo fi = FocusInfo.OnRight(); if (fi.Node == FocusInfo.Node) { FocusInfo = fi; } } else { base.ChangeElement(element, value); } }