//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) { }