//Note: currently the selected features are one select behind. //e.g on drawing the first region all the layers features are returned // on drawing the second region all the features matching the first region are returned etc.. private void AttributeQueryHandler_End(object sender, MapActionHandlerEventArgs e) { IFeatureLayer l = Enumerable.FirstOrDefault( Caster.Cast <IFeatureLayer>( Processor.Where(Map.SelectedLayers, delegate(ILayer o) { return(o as IFeatureLayer != null); }))); if (l != null) { FeatureDataView dv = new FeatureDataView(l.SelectedFeatures.Table); if (l.SelectedFeatures.AttributeFilter != null) { dv.AttributeFilter = (AttributeBinaryExpression) l.SelectedFeatures.AttributeFilter.Clone(); } if (l.SelectedFeatures.SpatialFilter != null) { dv.SpatialFilter = (SpatialBinaryExpression) l.SelectedFeatures.SpatialFilter.Clone(); } if (l.SelectedFeatures.OidFilter != null) { dv.OidFilter = (OidCollectionExpression) l.SelectedFeatures.OidFilter.Clone(); } if (l.SelectedFeatures.ViewDefinition != null) { dv.ViewDefinition = (FeatureQueryExpression) l.SelectedFeatures.ViewDefinition.Clone(); } QueryResultsTab tab = new QueryResultsTab(l.LayerName, dv); resultsTabControl.TabPages.Insert(0, tab); resultsTabControl.SelectedTab = tab; } }
private void AttributeQueryHandler_Begin(object sender, MapActionHandlerEventArgs e) { }