public override void Execute(TreeListNode node) { bool visibleChildNodesResult = false; if (node.Nodes.Count != 0) { FilterNodesOperation childNodesOperation = new FilterNodesOperation(filterConditions); node.TreeList.NodesIterator.DoLocalOperation(childNodesOperation, node.Nodes); visibleChildNodesResult = childNodesOperation.HasVisibleChildNodes; filteredVisibleNodes.AddRange(childNodesOperation.FilteredVisibleNodes); } bool nodeFiltered = IsNodeFiltered(node); if (!nodeFiltered || visibleChildNodesResult) { hasVisibleChildNodes = true; } if (nodeFiltered && visibleChildNodesResult) { filteredVisibleNodes.Add(node); } node.Visible = !nodeFiltered || visibleChildNodesResult; }
public override void FilterNodes() { this.BeginUpdate(); try { FilterNodesOperation filterNodesOperation = new FilterNodesOperation(columnFilterConditions); this.NodesIterator.DoLocalOperation(filterNodesOperation, this.Nodes); filteredVisibleNodes.AddRange(filterNodesOperation.FilteredVisibleNodes); } finally { this.EndUpdate(); } }