Engine中可否判断mxd中图层数据丢失,如果丢失进行提示

Engine中可否判断mxd中图层的数据是否丢失(即图层前面有红色叹号),如果丢失进行提示
已邀请:

朱新颖

赞同来自:

【解决办法】:
1,获取ILayer;
2,将ILayer转为IDataLayer,获取IDataLayer.DataSourceName,为IName类型;
3,使用IDataLayer.Connect()传人刚刚获取的IName,返回值为bool类型,true即正常,抛出异常并返回false为图层数据丢失,可以进行提示。

IDataLayer dataLayer = axMapControl1.get_Layer(0) as IDataLayer;
            IName name = dataLayer.DataSourceName;
            try
            {
                bool isConnect = dataLayer.Connect(name);
            }
            catch (Exception ex)
            {
                MessageBox.Show(This layer data was lost!);
            }

要回复问题请先登录注册