<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Is there a feature layer &amp;quot;completed&amp;quot; event? in ArcGIS API for Silverlight Questions</title>
    <link>https://community.esri.com/t5/arcgis-api-for-silverlight-questions/is-there-a-feature-layer-amp-quot-completed-amp/m-p/322337#M8326</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I agree with Sanjay.&lt;/SPAN&gt;&lt;BR /&gt;&lt;A href="http://help.arcgis.com/en/webapi/silverlight/apiref/ESRI.ArcGIS.Client~ESRI.ArcGIS.Client.FeatureLayer~UpdateCompleted_EV.html"&gt;UpdateCompleted &lt;/A&gt;&lt;SPAN&gt;event looks like what you are looking for.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 23 Sep 2011 09:12:48 GMT</pubDate>
    <dc:creator>DominiqueBroux</dc:creator>
    <dc:date>2011-09-23T09:12:48Z</dc:date>
    <item>
      <title>Is there a feature layer &amp;quot;completed&amp;quot; event?</title>
      <link>https://community.esri.com/t5/arcgis-api-for-silverlight-questions/is-there-a-feature-layer-amp-quot-completed-amp/m-p/322335#M8324</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Is there a way to get hold of the features returned by a feature layer for further processing?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have a feature layer which I query, not using a query task;&amp;nbsp; I use the "Where" property of the feature layer to retrieve the features at run-time.&amp;nbsp; The features, points, are drawn on screen.&amp;nbsp; I would like to get hold of those features that are drawn on screen, to avoid executing another query (a query task, perhaps) to access those attributes.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The feature layer "Where" clause retrieves the points asynchronously, so I do not know a way to get hold of those features.&amp;nbsp; I would like to declare a "Completed" event on that feature layer "Where" statement, like the Query Task does it.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This is what I do:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;FeatureLayer fs = new FeatureLayer();&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&lt;SPAN&gt;fs.Url = "&lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="http://.../0" rel="nofollow" target="_blank"&gt;http://.../0&lt;/A&gt;&lt;SPAN&gt;";&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;fs.Mode = FeatureLayer.QueryMode.OnDemand;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;fs.Renderer = MyRenderer;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;fs.Where = "AlertType = 14";&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;fs.OutFields.Add("*");&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;fs.ID = "MyMeters";&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;fs.Visible = true;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;int index = MyMap.Layers.IndexOf(MyMap.Layers["MyMeters"]);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;MyMap.Layers.RemoveAt(index);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;MyMap.Layers.Insert(index, fs);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The code above retrieves and draws on the map the meters of alert type 14.&amp;nbsp; I change the alert type to 11, 12, 13, etc. using check boxes; so the "Where" statement changes.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The features are retrieved very fast.&amp;nbsp; But I need to get hold of those features, for I need to do further processing based on those attributes.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Am I using the wrong approach to query the feature layer and draw its features at run-time?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Or, is there such a thing like a "Completed" event for a feature layer?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Your response is much appreciated.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Hugo.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 22 Sep 2011 23:27:34 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-api-for-silverlight-questions/is-there-a-feature-layer-amp-quot-completed-amp/m-p/322335#M8324</guid>
      <dc:creator>HugoCardenas</dc:creator>
      <dc:date>2011-09-22T23:27:34Z</dc:date>
    </item>
    <item>
      <title>Re: Is there a feature layer "completed" event?</title>
      <link>https://community.esri.com/t5/arcgis-api-for-silverlight-questions/is-there-a-feature-layer-amp-quot-completed-amp/m-p/322336#M8325</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;You can listen to FeatureLayer::UpdateCompleted event.In this event, fresh query on the feature layer is updated.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Hope this helps.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 23 Sep 2011 07:39:15 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-api-for-silverlight-questions/is-there-a-feature-layer-amp-quot-completed-amp/m-p/322336#M8325</guid>
      <dc:creator>SanajyJadhav</dc:creator>
      <dc:date>2011-09-23T07:39:15Z</dc:date>
    </item>
    <item>
      <title>Re: Is there a feature layer "completed" event?</title>
      <link>https://community.esri.com/t5/arcgis-api-for-silverlight-questions/is-there-a-feature-layer-amp-quot-completed-amp/m-p/322337#M8326</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I agree with Sanjay.&lt;/SPAN&gt;&lt;BR /&gt;&lt;A href="http://help.arcgis.com/en/webapi/silverlight/apiref/ESRI.ArcGIS.Client~ESRI.ArcGIS.Client.FeatureLayer~UpdateCompleted_EV.html"&gt;UpdateCompleted &lt;/A&gt;&lt;SPAN&gt;event looks like what you are looking for.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 23 Sep 2011 09:12:48 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-api-for-silverlight-questions/is-there-a-feature-layer-amp-quot-completed-amp/m-p/322337#M8326</guid>
      <dc:creator>DominiqueBroux</dc:creator>
      <dc:date>2011-09-23T09:12:48Z</dc:date>
    </item>
    <item>
      <title>Re: Is there a feature layer "completed" event?</title>
      <link>https://community.esri.com/t5/arcgis-api-for-silverlight-questions/is-there-a-feature-layer-amp-quot-completed-amp/m-p/322338#M8327</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;UpdateFailed / UpdateCompleted tell you when the FeatureLayer is completed with retrieving the features that need to be drawn on the map.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;If you want to take a image of that layer ( *.ToBitmap() ), you need to wait until the drawing is completed - I had to wait for the 1ste LayoutUpdated event of the map control after the UpdateFailed / UpdateCompleted is triggered.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 23 Sep 2011 11:39:26 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-api-for-silverlight-questions/is-there-a-feature-layer-amp-quot-completed-amp/m-p/322338#M8327</guid>
      <dc:creator>GertConradie</dc:creator>
      <dc:date>2011-09-23T11:39:26Z</dc:date>
    </item>
    <item>
      <title>Re: Is there a feature layer "completed" event?</title>
      <link>https://community.esri.com/t5/arcgis-api-for-silverlight-questions/is-there-a-feature-layer-amp-quot-completed-amp/m-p/322339#M8328</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Thanks Sanjay, Dominique and Gert.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I solved my problem and below is the code for the one method and its event handler (cf. code below).&amp;nbsp; Yes, "UpdateCompleted" did it.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The collection sent by the feature service keeps its reference all the way through; one cannot just assign the returned graphics to the existing graphics layer bound to the feature data grid.&amp;nbsp; I had to create a nested loop (cf. FeatureLayer_UpdateCompleted) and copy the geometry and attributes to the new graphic.&amp;nbsp; Then, I inserted the new graphic to the existing graphics layer bound to the feature data grid.&amp;nbsp; (I learned from Dominique not to use "ItemsSource" to bind features to the feature data grid: update the graphics layer associated with it, instead.)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks a lot!&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Hugo.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;public void ReLoadMeters(string sql)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Retrieve meters for the alert type check box status */
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ESRI.ArcGIS.Client.FeatureLayer fs = new ESRI.ArcGIS.Client.FeatureLayer();

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Set event handler on feature layer feature retrieval.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fs.UpdateCompleted += FeatureLayer_UpdateCompleted;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fs.Url = MetersFeatureService;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!string.IsNullOrWhiteSpace(sql)) fs.Where = sql;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fs.Mode = FeatureLayer.QueryMode.OnDemand;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fs.Renderer = AlertTypesRenderer;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fs.OutFields.Add("*");
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fs.Visible = true;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fs.ID = MetersMapName;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Add the new meters to the map. Remove the old layer first
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int index = MyMap.Layers.IndexOf(MyMap.Layers[MetersMapName]);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (index &amp;gt;= 0)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MyMap.Layers.RemoveAt(index);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MyMap.Layers.Insert(index, fs);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch { }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; }


&amp;nbsp;&amp;nbsp;&amp;nbsp; private void FeatureLayer_UpdateCompleted(object sender, EventArgs args)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Create instance of feature layer that just returned features from ArcGIS Cloud Server
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ESRI.ArcGIS.Client.FeatureLayer fs = sender as ESRI.ArcGIS.Client.FeatureLayer;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Clear graphics layer bound to feature data grid
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _myFeatureDataGridLayer.ClearGraphics();

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Fill graphics layer for feature data grid 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Iterate through every feature sent by feature service
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach (ESRI.ArcGIS.Client.Graphic graphic in fs.Graphics)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Create a new graphic instance to prevent OutOfRangeException silent errors.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ESRI.ArcGIS.Client.Graphic gr = new ESRI.ArcGIS.Client.Graphic();

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Retrieve geometry
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; gr.Geometry = graphic.Geometry;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Iterate through every attribute and copy it to new graphic.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach (KeyValuePair&amp;lt;string, object&amp;gt; kvp in graphic.Attributes)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; gr.Attributes.Add(kvp);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Insert new graphic to graphics layer bound to feature data grid
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _myFeatureDataGridLayer.Graphics.Insert(0, gr);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 15:18:26 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-api-for-silverlight-questions/is-there-a-feature-layer-amp-quot-completed-amp/m-p/322339#M8328</guid>
      <dc:creator>HugoCardenas</dc:creator>
      <dc:date>2021-12-11T15:18:26Z</dc:date>
    </item>
  </channel>
</rss>

