近期在做GP工具相关的功能,需要获取到图层并用ComboBox列出,比如图层更新:
开始用了根据图层名获取图层,但这样有个弊端,遇到不同文件夹的相同图层名称的图层gg了。本来想利用图层名+路径来区分,用IDataLayer接口,后来遇到注记图层,这个接口就不好用了,会出现异常。
其中的一句代码会出现异常,并且图层也分为shp,gdb等,所以这个方法不可取。
后来绞尽脑汁,终于想出用索引的方法来获取图层。将所有图层放到list集合中,当然获取图层要遍历,有些是在图层组里面,这样得到的集合里面的图层时有顺序的,在将图层添加到list集合的同时,也要将图层名添加到ComboBox中,这样ComboBox里面的图层名列表的顺序跟list集合里的图层顺序是一致的,当你点击ComboBox时,能获取到点击的索引,这个索引就是该图层在list列表中的索引。
思路就是这样。
一些或许有价值的参考:
https://zhidao.baidu.com/question/810569039437750732.html
http://blog.csdn.net/longronggis/article/details/7953117
http://blog.csdn.net/qq_35040828/article/details/73522136
https://gis.stackexchange.com/questions/43620/how-do-i-reach-a-layer-inside-a-grouplayer