/* ****** Identify using Query Service ****** */ private void QueryIdentifyTask_ExecuteCompleted(object sender, QueryEventArgs args) { QueryItem queryItem = args.UserState as QueryItem; if (queryItem.Index == 0) { IdentifyComboBox.Items.Clear(); _layersIdentified.Clear(); IdentifyDetailsDataGrid.ItemsSource = null; } // display search results for this layers query. if (args.FeatureSet.Features.Count > 0) { foreach (Graphic feature in args.FeatureSet.Features) { string title = queryItem.IdentifyLayerName; feature.Attributes.Remove("Shape"); feature.Attributes.Remove("OBJECTID"); _dataItems.Add(new DataItem() { Title = title, Data = feature.Attributes }); IdentifyComboBox.Items.Add(title); if (_activeIdentifyLayer == title) { queryItem.ActiveLayer = _layersIdentified.Count; } _layersIdentified.Add(title); } } if (queryItem.Next()) // this increments the internal index { Query query = new ESRI.ArcGIS.Client.Tasks.Query(); query.SpatialRelationship = SpatialRelationship.esriSpatialRelIntersects; query.Geometry = queryItem.BufferedPoint; query.OutFields.AddRange(new string[] { "*" }); QueryTask queryTask = new QueryTask(queryItem.IdentifyLayerUrl); queryTask.ExecuteCompleted += QueryIdentifyTask_ExecuteCompleted; queryTask.Failed += QueryIdentifyTask_Failed; queryTask.ExecuteAsync(query, queryItem); } else // We are done with all our queries, display the result. { IdentifyComboBox.SelectedIndex = queryItem.ActiveLayer; Visibility = System.Windows.Visibility.Visible; if ((_dataItems == null) || (_dataItems.Count == 0)) { NoResult.Visibility = Visibility.Visible; Results.Visibility = Visibility.Collapsed; } else { NoResult.Visibility = Visibility.Collapsed; Results.Visibility = Visibility.Visible; } } }