Я не могу сказать вам, почему IEventAggregator плох, может, он не такой интуитивно понятный?Когда вы смотрите на свое приложение - вы хотите увидеть, что происходит, и что события с некоторыми данными не кажутся хорошими.Событие есть событие.Вы можете поделиться некоторыми данными через контекст региона в PRISM.
Я решаю такие же проблемы, используя MEF.Таким образом, вы можете определить что-то вроде
[Export]
public class MyModelService
{
// Code here whatever shared data you want
}
public class MyViewModel
{
// Import this shared ModelService
[Import]
public MyModelService ModelService
}
Итак, если у вас есть некоторые данные в ModelService - по умолчанию MEF будет составлять их только один раз (эффективно делая их общими) и каждый раз, когда вы импортируете их в ViewModel, этот экземплярБудет здесь.Затем вы можете использовать События, происходящие из ModelService, чтобы сообщать компонентам об обновлении данных и т. Д.