The EmbeddableControl.OpenAsync() method is called twice when a MapTool is started from the Add-in tab.
上次发布: May 6, 2021ArcGIS Pro SDK for .NET
漏洞 ID 编号
BUG-000128026
已提交
January 17, 2020
上次修改时间
May 5, 2025
适用范围
ArcGIS Pro SDK for .NET
找到的版本
2.4.3
操作系统
Windows OS
操作系统版本
10.0 64 Bit
状态
Will Not Be Addressed
开发团队已考虑过该问题或请求,并决定不会解决该问题。 问题的“其他信息”部分可能包含进一步说明。
附加信息
'Active' Tools can be activated multiple times within their lifespan. The most obvious case is when a user clicks on the tool on the ribbon. When the tool is activated, the OpenAsync method is called on its associated embeddable control (assuming it has one) along with the OnToolActivateAsync(...) method. This is probably the expected workflow for tool add-in developers.
However, a tool which is '_already active_' can still be reactivated many times, even when the user does not '_explicitly_' reactivate it by clicking on the tool on the ribbon - such as when the tool is already active and a view is being initialized (eg a new map view is being opened) usually because the user has switched views.
When a user switches map views (or scene views), the active map tool will be reactivated (even though it is already active) meaning the OpenAsync method is called along with the OnToolActivateAsync(...) method.
Note: In the case of a new (map or scene) view being activated, if the map tool is already the active tool, the OpenAsync method is called '_twice_' in succession, once when the new view is being initialized and once when the active view changed event fires internally. This is also true of the OnToolActivateAsync(...) method.
There are likely other situations where tools get reactivated and add-in developers should code the tools and associated embeddable controls accordingly.