Правильно, ой, теперь я считаю, что настроил это приложение правильно, но поправьте меня, если я не прав, ради простоты у меня в моем загрузчике 3 загруженных модуля, один - модуль навигации, а два других - представления.
Независимо в коде, если я загружаю модули и в методе initialize добавляю их в регион, который все работает нормально, однако идентификатор конечно же похож на еще один элемент управления.
Теперь в модели представления навигации у меня есть агрегатор событий, которыйпубликует событие (класс, который наследует от EventArgs, если это важно), два других модуля подписались на это событие, но не получили его,
/// <summary>
/// Carries the out menu item selection methods.
/// </summary>
/// <param name="e">The <see cref="TMBL.Web.TMBLCore.Controls.Assets.NavigationViewSelectionEventArgs"/> instance containing the event data.</param>
public void CarryOutMenuItemSelectionMethods(NavigationViewSelectionEventArgs e)
{
_eventAggregator.GetEvent<NavigationMenuItemSelectedEvent>().Publish(e);
}
в навигационной ViewModel, а затем подписались в модуле новостей
_eventAggregator.GetEvent<NavigationMenuItemSelectedEvent>().Subscribe(NavigationMenuReturnedEvent,
ThreadOption.UIThread);
Казалось бы, достаточно просто, я могу подписаться на это событие в моем навигационном модуле, и он его забирает, он просто не выходит за пределы модуля, что нужно сделать, чтобы достичь этого?
Также агрегатор событий вставляется через внедрение зависимостей в конструктор модулей, затем сохраняетсятам и проходили через конструкторы к представлениям и моделям представления (представления сначала подходят кстати).Хотя я здесь, я не знаю, является ли это причиной проблемы или нет, но плохо ли, чтобы модуль сохранял экземпляр агрегатора событий и передавал его таким образом, например,
_displayNewsView = new DisplayNewsView(new DisplayNewsViewModel(_eventAggregator));
Или событие должноагрегатор попадет в viewmodels по-другому?
Спасибо за ваше время