private void RecoverParent(base_datadic_tree_ex node) { if (node.parent_ex == null || node.parent_ex.visibility_ex == System.Windows.Visibility.Visible) { return; } node.parent_ex.visibility_ex = System.Windows.Visibility.Visible; node.parent_ex.expanded_ex = true; RecoverParent(node.parent_ex); }
public DictionaryViewModel() { Dict = new base_datadic_tree_ex() { children_ex = new System.Collections.ObjectModel.ObservableCollection <base_datadic_tree_ex>() }; if (!((AppViewModel)System.Windows.Application.Current.Resources["AppDataSource"]).IsInDesignMode) { GetRoot(); } }
public void SetParentToChildren(base_datadic_tree_ex node) { if (node.children == null) { return; } foreach (base_datadic_tree_ex item in node.children) { item.parent_ex = node; SetParentToChildren(item); } }
private void VisibleAll(base_datadic_tree_ex node) { if (node.children_ex == null) { return; } foreach (var item in node.children_ex) { item.visibility_ex = System.Windows.Visibility.Visible; item.background_ex = null; VisibleAll(item); } }
private void SearchChildren(string searchText, base_datadic_tree_ex node) { if (node.leaf.Value) { return; } if (node.children_ex == null) { _searchWait++; node.ChildLoaded = () => { SearchChildren(searchText, node); node.ChildLoaded = null; lock (this) { SearchWait--; } }; } else { foreach (var item in node.children_ex) { if (item.item_name.ToLower().Contains(searchText)) { if (item.visibility_ex == System.Windows.Visibility.Collapsed) { item.visibility_ex = System.Windows.Visibility.Visible; VisibleAll(item); } RecoverParent(item); } else { item.visibility_ex = System.Windows.Visibility.Collapsed; SearchChildren(searchText, item); } } } }
private void ColorChildren(string searchText, base_datadic_tree_ex node) { if (node.leaf.Value) { return; } if (node.children_ex == null) { node.ChildLoaded = () => { ColorChildren(searchText, node); node.ChildLoaded = null; }; } else { foreach (var item in node.children_ex) { if (item.visibility_ex == System.Windows.Visibility.Collapsed) { continue; } if (item.item_name.ToLower().Contains(searchText)) { if (item.background_ex == null) { item.background_ex = "Yellow"; } node.expanded_ex = true; } else { item.background_ex = null; } ColorChildren(searchText, item); } } }