private void textBox_Search_TextChanged(object sender, TextChangedEventArgs e) { string partialWord = textBox_Search.Text; if (string.IsNullOrWhiteSpace(partialWord)) { TreeViewReturnToDefault(); return; } TreeView searchTreeView = new TreeView(); IList <string> searchResults = m_EntityTrie.PartialWordSearch(partialWord); if (searchResults != null && searchResults.Count > 0) { foreach (string item in searchResults) { ToggleButton origItem = m_TreeViewItemDict[item].Header as ToggleButton; if (origItem == null) { continue; // Skip non-ToggleButton item } TreeViewItem childNode = new TreeViewItem(); ToggleButton childNodeItem; if (m_SingleNodeSelection) { childNodeItem = new RadioButton(); } else { childNodeItem = new CheckBox(); } childNode.Name = item; childNodeItem.Name = item; childNodeItem.Content = item; // set check status following the original selection childNodeItem.IsChecked = origItem.IsChecked; if (m_SingleNodeSelection && origItem.IsChecked == true) { prevSelItem = childNode; } childNodeItem.Checked += new RoutedEventHandler(SearchItem_Checked); childNodeItem.Unchecked += new RoutedEventHandler(SearchItem_Unchecked); childNode.Header = childNodeItem; searchTreeView.Items.Add(childNode); } IFCEntityTreeView.ItemsSource = searchTreeView.Items; } else { IFCEntityTreeView.ItemsSource = null; } button_Reset.IsEnabled = false; button_CollapseAll.IsEnabled = false; button_ExpandAll.IsEnabled = false; }