using ESRI.ArcGIS.Carto; using ESRI.ArcGIS.Controls; using KGIS.Framework.AE.ExtensionMethod; using KGIS.Framework.Maps; using KGIS.Framework.Platform; using KGIS.Framework.Views; using Kingo.Plugin.MapView.Interface; using System; using System.Collections.Generic; using System.Windows.Controls; namespace Kingo.Plugin.MapView.Views { /// /// UserControl1.xaml 的交互逻辑 /// public partial class FrmDataCheck : UserControl, IDockPanel3 { private IHookHelper m_hookHelper; IMapService _mapService = null; IFeatureLayer featureLayer = null; public FrmDataCheck() { InitializeComponent(); this.DockAreas = DockStyle.DockRight | DockStyle.Float; this.FloatSize = new System.Drawing.Size(400, 500); this.DefaultArea = DockStyle.Float; this.DockHeight = 125; this.ShowCloseButton = true; this.ShowAutoHideButton = true; this.IsDockToPanel = true; this.DockToPanelStyle = DockStyle.DockBottom; this.Title = "错误信息"; } #region IDockPanel接口 public Guid ID { get; set; } public DockStyle _DockAreas; public event EventHandler CloseViewHandler; public DockStyle DockAreas { get; set; } public System.Drawing.Size FloatSize { get; set; } public int DockWidth { get; set; } public int DockHeight { get; set; } public DockStyle DefaultArea { get; set; } public bool ShowCloseButton { get; set; } public bool ShowAutoHideButton { get; set; } public string Title { get; set; } public bool IsShowInMap { get; set; } public bool IsDockToPanel { get; set; } public DockStyle DockToPanelStyle { get; set; } public void ShowPanel() { Platform.Instance.OpenView(this, false); if (MapsManager.Instance.MapService != null) { MapsManager.Instance.MapService.ProjectClosed += Platform_CloseProjectEvent; } } void Platform_CloseProjectEvent(object sender, object e) { MapsManager.Instance.MapService.ProjectClosed -= Platform_CloseProjectEvent; this.ClosePanel(); } public void ClosePanel() { this.ClosePanel(); } public void ClosePanelInvoke() { CloseViewHandler?.Invoke(this, null); } #endregion public void BindDada(List ListCheckResultModel, IHookHelper hook) { m_hookHelper = hook; _mapService = MapsManager.Instance.MapService; object pLayer = m_hookHelper.GetCustomProperty();//获取对象的创建者的Application对象 IFeatureLayer pTocFeatureLayer = pLayer as IFeatureLayer; featureLayer = pTocFeatureLayer; MyPropertyGrid.ItemsSource = ListCheckResultModel; } private void DataGridRow_MouseDoubleClick(object sender, System.Windows.Input.MouseButtonEventArgs e) { m_hookHelper.FocusMap.ClearSelection();//清除图层上要素选择 try { if (_mapService != null) { _mapService.SelectFeature(featureLayer.Name, ((sender as DataGridRow).DataContext as CheckResultModel).OBJECTID); } } catch (Exception) { return;//点击列表外,查到不到行 } } } }