Мне не очень нравится идея использовать EventAggregator слишком сильно для подобных вещей. Особенно, если вы решили создать интерфейс многодокументного редактора, каждый из ваших редакторов будет нести ответственность за большую фильтрацию, чтобы получить события, которые подходят только им.
Для этой цели может быть легко использовать EventAggregator, но я думаю, что он, вероятно, не совсем подходит. Тем не менее, это не совсем неправильно ... на самом деле, я считаю, что некоторые из примеров Prism делают именно это, но я думаю, что это накладывает слишком большую ответственность на компоненты для фильтрации, а не на использование возможностей фреймворка.
Ваш субъект предлагает вам подумать об использовании CompositeCommands для этого. Есть ли причина, по которой вы не делаете это вместо использования EventAggregator? Если бы у вас было стандартное место, где ViewModels могли зарегистрировать свои Команды, предназначенные для обработки каждой из этих кнопок, с составной командой, расположенной позади каждой, разве это не дало бы вам ту функциональность, которую вы хотели? В дополнение к возможности обрабатывать команды кнопок, каждый из составляющих видов / моделей представления мог бы отключать кнопки, когда они были неуместны и т. Д.
Внимательно посмотрите образцы CompositeCommand в документации Prism и посмотрите, не выполняют ли они то, что вам нужно.