private void FlashCommand(object sender, RoutedEventArgs e)
 {
     LogLog.Instance.Logger[LogLogEnum.Debug]("TableSearch:FlashCommand");
     try {
         IActiveView  av    = ArcMap.Document.ActiveView as IActiveView;
         FeatureModel aFeat = dataGrid1.SelectedItem as FeatureModel;
         av.ScreenDisplay.UpdateWindow();
         IFeatureIdentifyObj featIdentify = new FeatureIdentifyObject();
         featIdentify.Feature = aFeat.Feature;
         IIdentifyObj identify = featIdentify as IIdentifyObj;
         identify.Flash(av.ScreenDisplay);
     } catch (Exception ex) {
         LogLog.Instance.Logger[LogLogEnum.Error](ex.Message);
     }
 }
 private void AddToSelectionCommand(object sender, RoutedEventArgs e)
 {
     LogLog.Instance.Logger[LogLogEnum.Debug]("TableSearch:AddToSelectionCommand");
     try {
         IActiveView  av    = ArcMap.Document.ActiveView as IActiveView;
         FeatureModel aFeat = dataGrid1.SelectedItem as FeatureModel;
         TableHelper  th    = TableHelper.Instance;
         ILayer       l     = th.GetLayerFromFeature(aFeat.Feature);
         if (!l.Visible)
         {
             l.Visible = true;
         }
         av.FocusMap.SelectFeature(l, aFeat.Feature);
         av.PartialRefresh(esriViewDrawPhase.esriViewGeoSelection, null, null);
     } catch (Exception ex) {
         LogLog.Instance.Logger[LogLogEnum.Error](ex.Message);
     }
 }
 private void ZoomCommand(object sender, RoutedEventArgs e)
 {
     LogLog.Instance.Logger[LogLogEnum.Debug]("TableSearch:ZoomCommand");
     try {
         FeatureModel aFeat = dataGrid1.SelectedItem as FeatureModel;
         IActiveView  av    = ArcMap.Document.ActiveView as IActiveView;
         IGeometry    aGeom = aFeat.Feature.Shape as IGeometry;
         LogLog.Instance.Logger[LogLogEnum.Debug]("Got feat, av and geom");
         if (aGeom != null)
         {
             if (aGeom.GeometryType == esriGeometryType.esriGeometryPoint)
             {
                 IPoint   pt = aGeom as IPoint;
                 var      x  = pt.X;
                 var      y  = pt.Y;
                 var      borderAreaDistance = 100;
                 Envelope anEnv = new Envelope {
                     XMin = x - borderAreaDistance,
                     YMin = y - borderAreaDistance,
                     XMax = x + borderAreaDistance,
                     YMax = y + borderAreaDistance
                 };
                 av.Extent = anEnv as IEnvelope;
                 LogLog.Instance.Logger[LogLogEnum.Debug]("Reset av extent");
             }
             else
             {
                 av.Extent = aFeat.Feature.Extent;
             }
         }
         TableHelper th = TableHelper.Instance;
         LogLog.Instance.Logger[LogLogEnum.Debug]($"th:{th.ToString()}");
         ILayer l = th.GetLayerFromFeature(aFeat.Feature);
         LogLog.Instance.Logger[LogLogEnum.Debug]($"Layer:{l.ToString()}");
         TOCHelper tch = new TOCHelper();
         LogLog.Instance.Logger[LogLogEnum.Debug]($"Toc Helper:{tch.ToString()}");
         tch.MakeVisible(l);
         av.PartialRefresh(esriViewDrawPhase.esriViewAll, null, av.Extent);
     } catch (Exception ex) {
         LogLog.Instance.Logger[LogLogEnum.Error](ex.StackTrace.ToString());
         LogLog.Instance.Logger[LogLogEnum.Error](ex.Message);
     }
 }