C # WPF MAF Надстройка взаимодействия между собой - PullRequest
1 голос
/ 25 мая 2010

Я хотел бы создать очень простое приложение Paint, используя MAF на WPF.

Надстройки, которые я хотел бы создать:

  1. Main Image Processor - Показывает текущую краску и получает входные данные от пользователя
  2. Ящик для инструментов - Пользователь может выбрать некоторые типы инструментов для рисования
  3. Слои - Пользователь может выбрать слои для отображения, удалить слои и выбрать, над каким слоем работать

вопрос: как я могу взаимодействовать между различными надстройками без использования хоста?

Спасибо, Ronny

1 Ответ

0 голосов
/ 28 мая 2010

Я делаю так, чтобы хост собирал каждую надстройку в коллекцию по мере их обнаружения, а затем передавал эту коллекцию каждой надстройке при ее инициализации.То, что вы передаете надстройкам, это интерфейсы других надстроек, так как это действительно все, что хост знает о них.

Хост должен инициализировать каждую надстройку, а затем, как только они все будут инициализированы, дать им сигнал на активацию, после чего они обнаружат другие надстройки и начнут делать свое дело.Каждая надстройка должна предоставлять метод WhoAreYou, чтобы они могли узнать, кто еще установлен, когда они активированы.Получение ваших надстроек из базового класса упростит это.Как только вы выяснили это для одного, это будет сделано для всех них.

Этот подход использует хост только для сбора и распространения интерфейсов надстроек, при этом надстройки напрямую связываются друг с другом черезконвейер контракта вместо маршрутизации сообщений через хост.

...