Ejemplo n.º 1
0
        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);
                }
            }
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
 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);
 }
Ejemplo n.º 4
0
 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);
 }
Ejemplo n.º 5
0
 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);
         }
     }
 }
Ejemplo n.º 6
0
 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);
         }
     }
 }
Ejemplo n.º 7
0
        /// <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);
        }
Ejemplo n.º 8
0
        /// <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);
        }
Ejemplo n.º 9
0
 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;
         }
     }
 }
Ejemplo n.º 10
0
 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);
 }
Ejemplo n.º 11
0
 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);
 }
Ejemplo n.º 12
0
        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);
        }
Ejemplo n.º 13
0
 internal void OnChoosedItemChanged(PUTreeViewItem oldItem, PUTreeViewItem newItem)
 {
     RoutedPropertyChangedEventArgs <PUTreeViewItem> arg = new RoutedPropertyChangedEventArgs <PUTreeViewItem>(oldItem, newItem, ChoosedItemChangedEvent); RaiseEvent(arg);
 }