结果如下: xaml前台界面如下: <UserControl x:Class="QueryOnlyApp.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:esri="clr-namespace:ESRI.ArcGIS.Client;assembly=ESRI.ArcGIS.Client" xmlns:slData="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data" mc:Ignorable="d" d:DesignWidth="640" d:DesignHeight="480"> <Grid x:Name="LayoutRoot"> <esri:Map x:Name="MyMap"> <esri:Map.Layers> <esri:ArcGISTiledMapServiceLayer ID="MapLayer" Url="http://pc1010/ArcGIS/rest/services/xinjiangmapservice/MapServer" /> </esri:Map.Layers> </esri:Map> <Canvas x:Name="ResultsDisplayCanvas" HorizontalAlignment="Center" VerticalAlignment="Top" Width="547" Height="200" Margin="0,30,0,0" > <Rectangle RadiusX="10" RadiusY="10" Fill="#22000000" Canvas.Left="0" Canvas.Top="4" Width="547" Height="200" /> <Rectangle Stroke="Gray" RadiusX="10" RadiusY="10" Fill="#775C90B2" Canvas.Left="0" Canvas.Top="0" Width="547" Height="200" /> <Rectangle Fill="#FFFFFFFF" Stroke="DarkGray" RadiusX="5" RadiusY="5" Canvas.Left="10" Canvas.Top="20" Width="527" Height="170" /> <TextBlock x:Name="DataDisplayTitle" Text="Using Query tasks without maps" Foreground="Black" FontSize="9" Canvas.Left="10" Canvas.Top="4" FontWeight="Bold" /> <StackPanel Orientation="Horizontal" Margin="5,0,15,0" Canvas.Top="25" > <TextBlock Text="新疆区域名称:" Margin="10,0,0,0" VerticalAlignment="Center"/> <TextBox x:Name="StateNameTextBox" Text="New" Height="23" HorizontalAlignment="Left" VerticalAlignment="Center" Width="125" TextWrapping="NoWrap" Margin="10,0,10,0" FontSize="12" Background="White" AcceptsReturn="False" /> <Button Content="查询" Width="75" VerticalAlignment="Center" HorizontalAlignment="Right" Click="QueryButton_Click" Margin="0,0,10,0" Cursor="Hand" /> </StackPanel> <slData:DataGrid x:Name="QueryDetailsDataGrid" AutoGenerateColumns="False" HeadersVisibility="Column" Background="White" IsReadOnly="True" Canvas.Left="10" Canvas.Top="50" Height="140" Width="527" HorizontalScrollBarVisibility="Hidden"> <slData:DataGrid.Columns> <slData:DataGridTextColumn Width="80" Binding="{Binding Path=POLYGON_ID }" Header="ID"/> <slData:DataGridTextColumn Width="110" Binding="{Binding Path=CN_NAME }" Header="区域名称"/> <slData:DataGridTextColumn Width="45" Binding="{Binding Path=CN_PY }" Header="区域拼音"/> </slData:DataGrid.Columns> </slData:DataGrid> </Canvas> </Grid> </UserControl> C#托管代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Windows; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Shapes; using ESRI.ArcGIS.Client.Tasks; using ESRI.ArcGIS.Client; namespace QueryOnlyApp { public partial class MainPage : UserControl { public MainPage() { InitializeComponent(); } void QueryButton_Click(object sender, RoutedEventArgs e) { QueryTask queryTask = new QueryTask("http://pc1010/ArcGIS/rest/services/xinjiangmapservice/MapServer/25"); queryTask.ExecuteCompleted += QueryTask_ExecuteCompleted; queryTask.Failed += QueryTask_Failed; ESRI.ArcGIS.Client.Tasks.Query query = new ESRI.ArcGIS.Client.Tasks.Query(); query.Text = StateNameTextBox.Text; query.OutFields.Add("*"); queryTask.ExecuteAsync(query); } void QueryTask_ExecuteCompleted(object sender, ESRI.ArcGIS.Client.Tasks.QueryEventArgs args) { FeatureSet featureSet = args.FeatureSet; if (featureSet != null && featureSet.Features.Count > 0) { List<QueryResultData> resultList = new List<QueryResultData>(); foreach (Graphic feature in featureSet.Features) { resultList.Add(new QueryResultData() { POLYGON_ID = feature.Attributes["POLYGON_ID"].ToString(), CN_NAME = feature.Attributes["CN_NAME"].ToString(), CN_PY = feature.Attributes["CN_PY"].ToString(), }); } QueryDetailsDataGrid.ItemsSource = resultList; } else { MessageBox.Show("No features returned from query"); } } private void QueryTask_Failed(object sender, TaskFailedEventArgs args) { MessageBox.Show("Query execute error: " + args.Error); } public class QueryResultData { public string POLYGON_ID { get; set; } public string CN_NAME { get; set; } public string CN_PY { get; set; } } } }