private void UpdateTreeItemRenderer() { var filteredTreeView = TreeView as FilteredTreeView; if (filteredTreeView != null) { TreeItemRenderer itemRenderer = TreeControl.ItemRenderer; itemRenderer.FilteringPattern = m_searchInput.SearchPattern; itemRenderer.FilteringStatus = filteredTreeView.GetNodeFilteringStatus; } }
private void UpdateTreeItemRenderer() { var filteredTreeView = TreeView as FilteredTreeView; if (filteredTreeView != null) { TreeItemRenderer itemRenderer = TreeControl.ItemRenderer; itemRenderer.FilteringPattern = m_TagPanel.TagList; itemRenderer.FilteringStatus = filteredTreeView.GetNodeFilteringStatus; } }
/// <summary> /// Performs custom actions after filtering finished</summary> /// <param name="sender">Sender</param> /// <param name="e">Event args</param> protected void UpdateFiltering(object sender, EventArgs e) { if (TreeView == null || TreeControl == null || TreeView.Root == null) { return; } TreeControl.SuspendLayout(); bool search = !m_searchInput.IsNullOrEmpty(); if (!m_searching && search) // Search started: remember expansion { RememberExpansion(); m_selectedItems = RememberSelection(); } TreeItemRenderer itemRenderer = this.TreeControl.ItemRenderer; itemRenderer.FilteringPattern = m_searchInput.SearchPattern; var filteredTreeView = TreeView as FilteredTreeView; if (filteredTreeView != null) { if (search) { filteredTreeView.BuildTreeCache(); filteredTreeView.BuildVisibility(); filteredTreeView.IsFiltering = true; if (itemRenderer.FilteringStatus == null) { itemRenderer.FilteringStatus = filteredTreeView.NodeCurrentFilteringStatus; } } else { filteredTreeView.IsFiltering = false; } } m_autoExpanding = true; if (search) { TreeControlAdapter.TreeView = TreeView; // Force reload ExpandAllMatches(); } else if (m_searching) // Search stopped: restore expansion { TreeControlAdapter.TreeView = TreeView; // Force reload IEnumerable <object> currentSelection = RememberSelection(); if (currentSelection != null && currentSelection.Any()) // if there are selected items during the searching { m_selectedItems = currentSelection; } RestoreExpansion(); RestoreSelection(); } m_searching = search; m_autoExpanding = false; TreeControl.ResumeLayout(); }