/// <summary>
        /// 查找父路径
        /// </summary>
        /// <param name="source"></param>
        /// <param name="target"></param>
        /// <returns>父节点</returns>
        private List <TreeViewDemoItem> GetParentNodes(TreeViewDemoItem source, TreeViewDemoItem target)
        {
            if (target == null || source == null)
            {
                return(null);
            }

            if (source == target)
            {
                //用非null的空集合表示匹配成功
                return(new List <TreeViewDemoItem>());
            }
            else
            {
                var result = new List <TreeViewDemoItem>();

                foreach (var treeViewDemoItem in source.Children)
                {
                    var getResult = GetParentNodes(treeViewDemoItem, target);
                    if (getResult != null)
                    {
                        result.Add(treeViewDemoItem);

                        result.AddRange(getResult);
                        return(result);
                    }
                }
            }

            return(null);
        }
        public TreeViewDemoWindow()
        {
            InitializeComponent();

            GetAllParentsFun = GetAllParentsFunHandler;

            var flagTreeViewItem = new TreeViewDemoItem();

            TreeViewItems = new List <TreeViewDemoItem>();
            for (int i = 0; i < 5; i++)
            {
                var newTreeItem = new TreeViewDemoItem();
                for (int j = 0; j < 15; j++)
                {
                    var subTreeViewItem = new TreeViewDemoItem();
                    for (int k = 0; k < 25; k++)
                    {
                        if (i == 3 && j == 5 && k == 12)
                        {
                            subTreeViewItem.Children.Add(flagTreeViewItem);
                        }
                        else
                        {
                            subTreeViewItem.Children.Add(new TreeViewDemoItem());
                        }
                    }

                    newTreeItem.Children.Add(subTreeViewItem);
                }

                TreeViewItems.Add(newTreeItem);
            }

            DataContext = this;

            SelectedItem = flagTreeViewItem;
        }