Не работают события IActiveViewEvents

0 голосов
спросил 13 Июль, 11 от Dorofeev1 (6,460 баллов) в категории Программные продукты Esri
    Столкнулся с странным поведением ArcGis, когда не срабатывают события IActiveViewEvents.
В моем инструменте нужно отслеживать добавление и удаление слоев. Для этого я в методе OnCreate класса BaseCommand
использую следующий код:

_application = hook as IApplication;
IMXDocument doc=(IMXDocument) _application.Document;
IActiveViewEvents_Event viewEvents = (IActiveViewEvents_Event)doc.FocusMap;
            viewEvents.ItemAdded += new IActiveViewEvents_ItemAddedEventHandler(viewEvents_ItemAdded);
            viewEvents.ItemDeleted += new IActiveViewEvents_ItemDeletedEventHandler(viewEvents_ItemDeleted);

При добавлении и удалении слоев события не генерируются, хотя если я запускаю ArcMap из-под Visual Studio, все работает.
Подскажите пожалуйста куда можно копнуть?

7 Ответы

0 голосов
ответил 13 Июль, 11 от TDenis (42,620 баллов)
Быть может просто меняется документ вместе с FocusMap, а подписка остаётся на старом экземпляре карты.
В VS где-то был готовый сниппет подписки на событие смены документа.
0 голосов
ответил 13 Июль, 11 от Dorofeev1 (6,460 баллов)

События документа тоже не срабатывают если я запускаю ArcMap не из под VS. Тут похоже есть какая-то загвоздка с тем что инициализация происходит в Command.
IDocumentEvents_Event docEvents = (IDocumentEvents_Event)app.Document;
            docEvents.NewDocument += new IDocumentEvents_NewDocumentEventHandler(docEvents_NewDocument);
            docEvents.OpenDocument += new IDocumentEvents_OpenDocumentEventHandler(docEvents_OpenDocument);


    
0 голосов
ответил 13 Июль, 11 от TDenis (42,620 баллов)
Угу, Command лениво инициализируется.
0 голосов
ответил 13 Июль, 11 от TDenis (42,620 баллов)
Это девятка?
0 голосов
ответил 13 Июль, 11 от Dorofeev1 (6,460 баллов)
9.3.1
0 голосов
ответил 13 Июль, 11 от TDenis (42,620 баллов)
В 10 в конфигурационной xml-ке можно указать onDemand.
А в 9-ке не знаю. Возможно придётся написать IExtension.
0 голосов
ответил 13 Июль, 11 от Dorofeev1 (6,460 баллов)
Мда, неохота из-за одного инструмента Extension городить
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...