Thanks a lot for your suggestions! Yes, I would like to query in the same time my streets and related to them alternate names without any mouse click event.
I added to my code:
private void StreetNameTextBox_LostFocus(object sender, RoutedEventArgs e)
{
Query query = new Query() { ReturnIdsOnly = true };
query.Where = string.Format("LAST_Street like '%{0}%'", StreetNameTextBox.Text.Trim());
query.OutFields.Add("LAST_Street");
queryTask.ExecuteAsync(query);
}
(LAST_Street is the field name in my feature class, which I query in order to return street name; StreetNameTextBox is a text box, where I enter street name to find using query task)
And changed:
private void QueryTask_ExecuteCompleted(object sender, ESRI.ArcGIS.Client.Tasks.QueryEventArgs args)
//some other code
case "Lion":
strQueryGraphicsLayer = "LionGraphicsLayer";
break;
// more code
Which only query my Lion streets to:
private void QueryTask_ExecuteCompleted(object sender, ESRI.ArcGIS.Client.Tasks.QueryEventArgs args)
//some other code
case "Lion":
strQueryGraphicsLayer = "LionGraphicsLayer";
FeatureSet newFeatureSet = args.FeatureSet;
RelationshipParameter relationshipParameters = new RelationshipParameter()
{
ObjectIds = newFeatureSet.ObjectIDs.Cast<int>(),
OutFields = new string[] { "Street" },
RelationshipId = 1,
OutSpatialReference = Map.SpatialReference
};
queryTask.ExecuteRelationshipQueryAsync(relationshipParameters);
LionQueryResultPanel.Visibility = System.Windows.Visibility.Visible;
break;
//more code
In order to query Lion streets and alternate names associated with these streets.
(Street is a field name in a related table. I would like that after query LAST_Street, I can see also corresponding errors from Street field)
Here is corresponding part of XAML:
<slData:DataGrid x:Name="RelatedRowsDataGrid" AutoGenerateColumns="False" HeadersVisibility="Column" Background="White"
IsReadOnly="True" Canvas.Left="10" Canvas.Top="50" Height="115" Width="996"
HorizontalScrollBarVisibility="Hidden">
<slData:DataGrid.Columns>
<slData:DataGridTextColumn Width="600" Binding="{Binding Attributes[LAST_Street]}" Header="Street Name"/>
<slData:DataGridTextColumn Width="396" Binding="{Binding Attributes[Street]}" Header="Alternate Name"/>
</slData:DataGrid.Columns>
</slData:DataGrid>
I also have this part of code from sample:
void QueryTask_ExecuteRelationshipQueryCompleted(object sender, RelationshipEventArgs e)
{
RelationshipResult pr = e.Result;
if (pr.RelatedRecordsGroup.Count == 0)
{
RelatedRowsDataGrid.ItemsSource = null;
}
else
{
foreach (var pair in pr.RelatedRecordsGroup)
{
RelatedRowsDataGrid.ItemsSource = pair.Value;
}
}
}
But I am able only to query LAST_Street and relationship query fails with error: �??Query failed: ESRI.ArcGIS.Client.Tasks.ServiseException: Unable to complete operation.�?�
Do you have any suggestions what possible can be wrong with my code?