Как получить доступ к элементу управления Map из плагинов в программе DemoMap DotSpatial - PullRequest
0 голосов
/ 02 апреля 2020

Я использую DotSpatial DemoMap в качестве основного интерфейса моего приложения, и я создал несколько плагинов для загрузки в DemoMap при запуске, и они работают. Однако я не очень понимаю, как разрешить моим пользовательским плагинам получать доступ к основному элементу управления картой.

Я вижу в основной форме DemoMap, есть свойство App.Map в качестве дескриптора для основного элемента управления картой (я прав?), Если это правда, то я предполагаю, что мне нужно передать его в каждый плагин, когда он запускается?

Итог, какой самый эффективный / лучший способ сделать основной элемент управления картой доступным для всего приложения из всех пользовательских плагинов? (Я использую библиотеки DotSpatial 2.0 на. Net 4.5.2)

1 Ответ

0 голосов
/ 16 апреля 2020

Получите из Extension и получите доступ к карте с поддержкой AppManger через свойство App.Map.

Расширение (плагин) может получить доступ к карте через свойство App.Map. Он доступен для любого класса, производного от Extension, поэтому его не нужно передавать в плагин. AppManager, который позволяет получить доступ к этому свойству, автоматически вводится через MEF.

Вот пример расширения

public class SimpleMapPlugin : Extension
{
    public SimpleMapPlugin()
    {
        // Access App.Map as needed.
    }
}
...