自己 整理了 下 代码 测试了下 还行。。。

    #region 操作树视图控件

        /// <summary>
/// 自定义需要的类型
/// </summary>
enum DatasetType
{
DTFeatureClass,
DTFeatureDataset,
DTTable,
DTRasterCatalog,
DTRasterDataset,
DTMosaicDataset,
DatasetTypeNum
} /// <summary>
/// 自定义需要的类型字符串名
/// </summary>
public static string[] NodeNames =
{
"要素类",
"特性表",
"影像目录",
"影像数据集",
"镶嵌数据集"
}; /// <summary>
/// 将工作空间内数据加入到树形控件
/// </summary>
/// <param name="pWorkSpace">工作空间</param>
/// <param name="treeView">属性控件</param>
public static void LoadWorkSpaceData(IWorkspace pWorkSpace, TreeView treeView)
{
if (null == pWorkSpace && null == treeView)
{
return;
}
try
{ if (treeView.Nodes != null)
{
treeView.Nodes.Clear();
} string server = pWorkSpace.ConnectionProperties.GetProperty("server").ToString();
string user = pWorkSpace.ConnectionProperties.GetProperty("user").ToString();
string database = pWorkSpace.ConnectionProperties.GetProperty("database").ToString();
TreeNode pRootNode = new TreeNode();
pRootNode.Text = server + "." + user + "." + database;
pRootNode.Tag = pWorkSpace;
treeView.Nodes.Add(pRootNode); for (int i = 0; i < (int)DatasetType.DatasetTypeNum; i++)
{
TreeNode nodeParent = new TreeNode(NodeNames[i]);
pRootNode.Nodes.Add(nodeParent);
DatasetType dst = (DatasetType)i;
nodeParent.Tag = dst; IEnumDatasetName datasetNames = null;
switch (dst)
{
case DatasetType.DTFeatureClass:
datasetNames = pWorkSpace.get_DatasetNames(esriDatasetType.esriDTFeatureClass);
break;
case DatasetType.DTFeatureDataset:
datasetNames = pWorkSpace.get_DatasetNames(esriDatasetType.esriDTFeatureDataset);
break;
case DatasetType.DTTable:
datasetNames = pWorkSpace.get_DatasetNames(esriDatasetType.esriDTTable);
break;
case DatasetType.DTRasterCatalog:
datasetNames = pWorkSpace.get_DatasetNames(esriDatasetType.esriDTRasterCatalog);
break;
case DatasetType.DTRasterDataset:
datasetNames = pWorkSpace.get_DatasetNames(esriDatasetType.esriDTRasterDataset);
break;
case DatasetType.DTMosaicDataset:
datasetNames = pWorkSpace.get_DatasetNames(esriDatasetType.esriDTMosaicDataset);
break;
}
FillTreeNode(nodeParent, datasetNames);
}
}
catch (Exception ex)
{
MessageBox.Show("将空间内的数据加载到树视图控件失败!" + ex.Message);
} } /// <summary>
/// 依据数据集添加新节点
/// </summary>
/// <param name="parentNode">父节点</param>
/// <param name="enumDSName">数据集项</param>
public static void FillTreeNode(TreeNode parentNode, IEnumDatasetName enumDSName)
{
try
{
IDatasetName dsName = enumDSName.Next();
while (dsName != null)
{
String drcNameStr = dsName.Name;
String drcShortName = LayerHelper.GetClassShortName(drcNameStr);
TreeNode drcNode = new TreeNode(drcShortName);
drcNode.Tag = dsName;
parentNode.Nodes.Add(drcNode);
dsName = enumDSName.Next();
}
}
catch (System.Exception ex)
{
throw ex;
}
} #endregion

C#:将空间数据加载到树视图控件的更多相关文章

  1. MVC4加载zTree树小控件

    前言: 第一次学习使用MVC框架,找了个练手项目,加载zTree树小控件.下面我就一步步说明我这次练手的经历以记录.如果有什么错误,希望各位大神帮忙指正,谢谢. 第一步: 利用VS2010新建一个MV ...

  2. 实现虚拟模式的动态数据加载Windows窗体DataGridView控件 .net 4.5 (一)

    实现虚拟模式的即时数据加载Windows窗体DataGridView控件 .net 4.5 原文地址 :http://msdn.microsoft.com/en-us/library/ms171624 ...

  3. 在ASP.NET中动态加载内容(用户控件和模板)

    在ASP.NET中动态加载内容(用户控件和模板) 要点: 1. 使用Page.ParseControl 2. 使用base.LoadControl 第一部分:加载模板 下 面是一个模板“<tab ...

  4. 上拉加载下拉刷新控件WaterRefreshLoadMoreView

    上拉加载下拉刷新控件WaterRefreshLoadMoreView 效果: 源码: // // SRSlimeView // @author SR // Modified by JunHan on ...

  5. WPF中动态加载XAML中的控件

    原文:WPF中动态加载XAML中的控件 using System; using System.Collections.Generic; using System.Linq; using System. ...

  6. C#窗体加载和控件加载不同步导致控件闪烁

    窗体加载和控件加载不同步导致的控件闪烁现象:// 代码块加在父窗体中的任意位置,解决窗体加载和控件加载不同步导致的控件闪烁问题        protected override CreatePara ...

  7. VC中实现带有背景位图的树型控件

    当前许多应用程序都在使用树型控件时为其添加了背景位图,增强的控件的魅力,然而对于Visual C++编程爱好者来说,使用Visual C++MFC提供的树型控件(CTreeCtrl)本身就是一个难点, ...

  8. MVC中在一个视图中,怎么加载另外一个视图?

    在RazorView.cshtml视图: <!--在视图中调用无返回值的方法,视图中调用无返回值的方法,要加上大括号--> <!--在一个视图中,直接加载另外一个视图--> @ ...

  9. 转:zTree树控件实战篇:针对多个下拉加载zTree树应该如何做出合理的配置

    今天有一个zTree的朋友遇到一个非常棘手的问题,才研究zTree树控件两天就被上头催着看成果,很是苦恼.他面对的问题就是页面内多个地方需要下拉在其文本框下方加载zTree树,由于对zTree下拉加载 ...

随机推荐

  1. 使用Vue.js和Axios从第三方API获取数据 — SitePoint

    更多的往往不是,建立你的JavaScript应用程序时,你会想把数据从远程源或消耗一个[ API ](https:/ /恩.维基百科.org /维基/ application_programming_ ...

  2. 老生常谈javascript的5中继承

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  3. Webstorm实时编译SASS和LESS

    Webstorm自带一个File Watchers功能,设置一下,即可实时编译SASS,LESS等 菜单:File->Settings->左栏Tools下的File Watchers,按右 ...

  4. soa文章摘抄

    from: http://blog.vsharing.com/fengjicheng/MC19136/ 浅析深究什么是SOA? (入选推荐日志,加10币)浅析深究什么是SOA? 金蝶中间件有限公司总经 ...

  5. (原创)2. WPF中的依赖属性之二

    1 依赖属性 1.1 依赖属性最终值的选用 WPF属性系统对依赖属性操作的基本步骤如下: 第一,确定Base Value,对同一个属性的赋值可能发生在很多地方.还用Button的宽度来进行举例,可能在 ...

  6. OpenShift负载分区策略(Router Shading)

    在很多场景下,单靠几个在Infra节点上的Router进行服务请求的转发是不够的,项目中很多时候都有流量隔离的需求,主要场景在于: 一个集群中的不同的环境的流量隔离需求,比如开发走几个Router,生 ...

  7. linux、mac的bash和zsh如何切换

    1.hostname 192-23-2-2 修改主机名字 2.chsh -s /bin/bash和chsh -s /bin/zsh可以永久切换,也就是一登录进来的就是相应的界面 bash/zsh命令是 ...

  8. 基于Spring Boot和Spring Cloud实现微服务架构学习--转

    原文地址:http://blog.csdn.net/enweitech/article/details/52582918 看了几周spring相关框架的书籍和官方demo,是时候开始总结下这中间的学习 ...

  9. 【转】js-ES6学习笔记-Symbol

    原文:https://www.cnblogs.com/zczhangcui/p/6435652.html https://blog.mgechev.com/2017/09/16/developing- ...

  10. iScroll示例,下拉刷新,上拉刷新

    iScroll示例,下拉刷新,上拉刷新 <!DOCTYPE html> <html> <head> <meta http-equiv="Conten ...