<esri2:FeatureDataForm x:Name="MyFeatureDataForm" FeatureLayer="{Binding Path=Layers[AllAvailableFeatureLayer], ElementName=MyMap}" IsEnabled="True" IsReadOnly="False" LabelPosition="Left" />
private void AllAvailableFeatureLayer_MouseLeftButtonUp(object sender, GraphicMouseButtonEventArgs args) { FeatureLayer featureLayer = sender as FeatureLayer; for (int i = 0; i < featureLayer.SelectionCount; i++) featureLayer.SelectedGraphics.ToList().UnSelect(); args.Graphic.Select(); MyFeatureDataForm.GraphicSource = args.Graphic; FeatureDataFormBorder.Visibility = Visibility.Visible; MyPopup.IsOpen=true; }
<esri2:FeatureDataForm x:Name="MyFeatureDataForm" ........... />
private void FeatureLayer_MouseLeftButtonUp(object sender, GraphicMouseButtonEventArgs args) { FeatureLayer featureLayer = sender as FeatureLayer; for (int i = 0; i < featureLayer.SelectionCount; i++) featureLayer.SelectedGraphics.ToList().UnSelect(); args.Graphic.Select(); MyFeatureDataForm.FeatureLayer = featureLayer; MyFeatureDataForm.GraphicSource = args.Graphic; FeatureDataFormBorder.Visibility = Visibility.Visible; MyPopup.IsOpen=true; }
I think the easiest way would be having the same MouseLeftButtonUp event handler for all your feature layers and setting FeatureDataForm's FeatureLayer and GraphicSource properties based upon the values of the sender object and the GraphicMouseButtonEventArgs argument in your handler, i.e. in your XAML:<esri2:FeatureDataForm x:Name="MyFeatureDataForm" ........... />
And in your code-behind:private void FeatureLayer_MouseLeftButtonUp(object sender, GraphicMouseButtonEventArgs args) { FeatureLayer featureLayer = sender as FeatureLayer; for (int i = 0; i < featureLayer.SelectionCount; i++) featureLayer.SelectedGraphics.ToList().UnSelect(); args.Graphic.Select(); MyFeatureDataForm.FeatureLayer = featureLayer; MyFeatureDataForm.GraphicSource = args.Graphic; FeatureDataFormBorder.Visibility = Visibility.Visible; MyPopup.IsOpen=true; }