WPF後端選中treeview節點

/// <summary>
        /// 選擇樹的一個節點
        /// </summary>
        /// <param name="itemsControl">樹控件名稱</param>
        /// <param name="HeaderCl">根節點</param>
        /// <param name="ChildrenCl">想要選中的節點數據</param>
        /// <returns></returns>
        private bool SelectItems(ItemsControl itemsControl, PP_OrgInfo HeaderCl,PP_OrgInfo ChildrenCl)
        {
            TreeViewItem container = itemsControl.ItemContainerGenerator.ContainerFromItem(HeaderCl) as TreeViewItem;
            if (container != null)
            {
                container.IsExpanded = true;
                bool isExists = false;
                if (container.ItemContainerGenerator.Status != System.Windows.Controls.Primitives.GeneratorStatus.ContainersGenerated)
                {
                    container.UpdateLayout();
                }
                if ((container.Header as PP_OrgInfo).Children != null)
                {
                    for (int i = (container.Header as PP_OrgInfo).Children.Count - 1;i>=0 ; i--)
                    {
                        if (SelectItems(container, (container.Header as PP_OrgInfo).Children[i], ChildrenCl))
                        {
                            isExists = true;
                            break;
                        }
                    }
                }
                if (!isExists)
                {
                    if ((container.Header as PP_OrgInfo) == ChildrenCl)
                    {
                        container.IsSelected = true;
                        container.BringIntoView();//滾動條滾動到選中的子元素
                        return true;
                    }
                    else
                        return false;
                }
                else
                    return false;
            }
            else
            {
                return false;
            }
        }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章