示例#1
0
        /// <summary>
        /// 展开目录
        /// </summary>
        protected override void OnExpand()
        {
            //存储有效对象id
            Dictionary <string, bool> vCache = new Dictionary <string, bool>();

            foreach (var item in m_Dir.GetDirectories())
            {
                vCache[item.Name] = true;
                if (Node.Nodes.ContainsKey(item.Name))
                {
                    continue;
                }

                //增加子节点
                FolderCategoryNode vNode = new FolderCategoryNode(item, m_Filter);
                AppendNode(vNode.Node);
            }

            //数据源。
            foreach (var item in m_Filter)
            {
                DataSourceCategoryNode[] arr = item.MakeDataSourceNode(m_Dir);
                if (null == arr || arr.Length == 0)
                {
                    continue;
                }
                foreach (var d in arr)
                {
                    AppendNode(d.Node);
                    vCache[d.Name] = true;
                }
            }

            //移除删除的对象
            RemoveDeletedNode(vCache);
        }
示例#2
0
        /// <summary>
        /// 展开数据。
        /// </summary>
        protected override void OnExpand()
        {
            ///获取所有的目录。
            Dictionary <string, bool> vDic = new Dictionary <string, bool>();

            foreach (var item in System.IO.DriveInfo.GetDrives())
            {
                if (!item.IsReady)
                {
                    continue;
                }
                vDic[item.RootDirectory.Name] = true;
                if (Node.Nodes.ContainsKey(item.RootDirectory.Name))
                {
                    continue;
                }

                //增加子节点
                FolderCategoryNode vNode = new FolderCategoryNode(item.RootDirectory, m_Filter);
                AppendNode(vNode.Node);
            }
            //移除删除的对象
            RemoveDeletedNode(vDic);
        }