Hi,
I'm trying to detect when the current MapView changes, so I can then activate/deactivate a button on a toolbar based on layers in the active map.
But when I click on (for example) the 'Catalog' tab, the ActiveMapViewChangedEvent fires and I get a NullReferenceException. As a workaround, I just catch the exception and disable the tool.
Is there a better way to determine if the user is no longer on a 'MapView' tab??
ActiveMapViewChangedEvent<SPAN class="punctuation token">.</SPAN><SPAN class="token function">Subscribe</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">(</SPAN>args<SPAN class="punctuation token">)</SPAN> <SPAN class="operator token">=</SPAN><SPAN class="operator token">></SPAN>
<SPAN class="punctuation token">{</SPAN>
<SPAN class="keyword token">try</SPAN>
<SPAN class="punctuation token">{</SPAN>
<SPAN class="keyword token">var</SPAN> lyr <SPAN class="operator token">=</SPAN> MapView<SPAN class="punctuation token">.</SPAN>Active<SPAN class="punctuation token">.</SPAN>Map<SPAN class="punctuation token">.</SPAN><SPAN class="token function">FindLayers</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"SDEDB1.GISADMIN.ADDR_Durham"</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">.</SPAN><SPAN class="token function">FirstOrDefault</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">if</SPAN> <SPAN class="punctuation token">(</SPAN>lyr <SPAN class="operator token">==</SPAN> <SPAN class="keyword token">null</SPAN><SPAN class="punctuation token">)</SPAN>
FrameworkApplication<SPAN class="punctuation token">.</SPAN>State<SPAN class="punctuation token">.</SPAN><SPAN class="token function">Deactivate</SPAN><SPAN class="punctuation token">(</SPAN>StateID<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">else</SPAN>
FrameworkApplication<SPAN class="punctuation token">.</SPAN>State<SPAN class="punctuation token">.</SPAN><SPAN class="token function">Activate</SPAN><SPAN class="punctuation token">(</SPAN>StateID<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="punctuation token">}</SPAN>
<SPAN class="keyword token">catch</SPAN> <SPAN class="punctuation token">(</SPAN><SPAN class="token class-name">NullReferenceException</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="punctuation token">{</SPAN>
FrameworkApplication<SPAN class="punctuation token">.</SPAN>State<SPAN class="punctuation token">.</SPAN><SPAN class="token function">Deactivate</SPAN><SPAN class="punctuation token">(</SPAN>StateID<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="punctuation token">}</SPAN>
<SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN><SPAN class="line-numbers-rows"><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN></SPAN>