예제 #1
0
        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;
        }