private static void OnBindingItemsChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { var treeView = d as PUTreeView; var items = treeView.BindingItems; if (items == null) { return; } treeView.Items.Clear(); foreach (var item in items) { var treeViewItem = new PUTreeViewItem() { Header = item.Header, Value = item.Value, }; treeView.Items.Add(treeViewItem); if (item.Items != null && item.Items.Count != 0) { treeView.AppendItem(item, treeViewItem, 2); } } }
private PUTreeViewItem GenerateTreeViewItem(PUTreeViewItemModel model) { var treeViewItem = new PUTreeViewItem() { Uid = model.Uid, Header = model.Header, Value = model.Value, Padding = model.Padding, }; foreach (var child in Generate(model.Items)) { treeViewItem.Items.Add(child); } model.PropertyChanged += delegate { treeViewItem.Header = model.Header; treeViewItem.Value = model.Value; treeViewItem.Padding = model.Padding; treeViewItem.Items.Clear(); foreach (var child in Generate(model.Items)) { treeViewItem.Items.Add(child); } }; return(treeViewItem); }
private PUTreeViewItem GetTreeViewItemByValue(PUTreeViewItem item, object value, bool autoExpand, bool includeParent) { if ((includeParent || !item.HasItems) && item.Value != null && item.Value.IsEqual(value)) { return(item); } if (item.HasItems) { foreach (var tvi in item.Items) { if (autoExpand) { (tvi as PUTreeViewItem).IsExpanded = false; } var tvix = GetTreeViewItemByValue(tvi as PUTreeViewItem, value, autoExpand, includeParent); if (tvix != null) { if (autoExpand) { (tvi as PUTreeViewItem).IsExpanded = true; } return(tvix); } } } return(null); }
private PUTreeViewItem GetTreeViewItemByHeader(PUTreeViewItem item, object header, bool autoExpand, bool includeParent) { if ((includeParent || !item.HasItems) && item.Header != null && item.Header.IsEqual(header)) { return(item); } if (item.HasItems) { foreach (var tvi in item.Items) { if (autoExpand) { (tvi as PUTreeViewItem).IsExpanded = false; } var tvix = GetTreeViewItemByHeader(tvi as PUTreeViewItem, header, autoExpand, includeParent); if (tvix != null) { if (autoExpand) { (tvi as PUTreeViewItem).IsExpanded = true; } return(tvix); } } } return(null); }
private void GetChildItemByHeader(ItemCollection items, object header) { foreach (var item in items) { var tvi = item as PUTreeViewItem; while (tvi.Items != null && tvi.Items.Count != 0) { GetChildItemByHeader(tvi.Items, header); return; } if ((tvi as PUTreeViewItem).Header == header) { _item = (tvi as PUTreeViewItem); } } }
private void AppendItem(PUTreeViewItemModel model, PUTreeViewItem parent, int deepth) { foreach (var item in model.Items) { var treeViewItem = new PUTreeViewItem() { Header = item.Header, Value = item.Value, Padding = new Thickness(Padding.Left * 2, 0, 0, 0), }; parent.Items.Add(treeViewItem); if (item.Items != null && item.Items.Count != 0) { AppendItem(item, treeViewItem, deepth + 1); } } }
/// <summary> /// 通过Value获取子项。 /// </summary> /// <param name="headerOrValue"></param> /// <returns></returns> public PUTreeViewItem GetTreeViewItemByValue(object value) { PUTreeViewItem target = null; foreach (var item in Items) { var tvi = item as PUTreeViewItem; tvi.IsExpanded = false; var tvix = GetTreeViewItemByValue(tvi, value); if (tvix != null) { target = tvix; } } return(target); }
/// <summary> /// 通过标题获取子项。 /// </summary> /// <param name="headerOrValue"></param> /// <returns></returns> public PUTreeViewItem GetTreeViewItemByHeader(object header) { PUTreeViewItem target = null; foreach (var item in Items) { var tvi = item as PUTreeViewItem; tvi.IsExpanded = false; var tvix = GetTreeViewItemByHeader(tvi, header); if (tvix != null) { tvi.IsExpanded = true; target = tvix; } } return(target); }
private void GetChildItemByUID(ItemCollection items, string uid) { foreach (var item in items) { var tvi = item as PUTreeViewItem; foreach (var itemx in tvi.Items) { GetChildItemByUID(tvi.Items, uid); var tvix = item as PUTreeViewItem; foreach (var itemxx in tvix.Items) { GetChildItemByUID(tvix.Items, uid); } } if ((tvi as PUTreeViewItem).Uid == uid) { _item = (tvi as PUTreeViewItem); return; } } }
private PUTreeViewItem GetTreeViewItemByValue(PUTreeViewItem item, object value) { if (item.Value.Equals(value)) { return(item); } if (item.HasItems) { foreach (var tvi in item.Items) { (tvi as PUTreeViewItem).IsExpanded = false; var tvix = GetTreeViewItemByValue(tvi as PUTreeViewItem, value); if (tvix != null) { (tvi as PUTreeViewItem).IsExpanded = true; return(tvix); } } } return(null); }
private PUTreeViewItem GetTreeViewItemByHeader(PUTreeViewItem item, object header) { if (item.Header.Equals(header)) { return(item); } if (item.HasItems) { foreach (var tvi in item.Items) { (tvi as PUTreeViewItem).IsExpanded = false; var tvix = GetTreeViewItemByHeader(tvi as PUTreeViewItem, header); if (tvix != null) { (tvi as PUTreeViewItem).IsExpanded = true; return(tvix); } } } return(null); }
private PUTreeViewItem GetItemByValue(object value) { PUTreeViewItem target = null; foreach (var item in Items) { var tvi = item as PUTreeViewItem; tvi.IsExpanded = false; var tvix = GetTreeViewItemByValue(tvi, value); if (tvix != null) { var parent = tvix.Parent as PUTreeViewItem; if (parent != null) { parent.IsExpanded = true; } target = tvix; } } return(target); }
internal void OnChoosedItemChanged(PUTreeViewItem oldItem, PUTreeViewItem newItem) { RoutedPropertyChangedEventArgs <PUTreeViewItem> arg = new RoutedPropertyChangedEventArgs <PUTreeViewItem>(oldItem, newItem, ChoosedItemChangedEvent); RaiseEvent(arg); }