Призма с вкладками и лентами
Я разрабатываю приложение призмы с ленточной панелью вверху, панелью внешнего вида слева и областью содержимого с вкладками (tabcontrol with regionadapter).
Я использую вид инъекции.
Моя проблема сейчас заключается в следующем: как внедрить собственный tabcontrol tabitem (например, кнопку edituser) в ленту при переключении с одного существующего tabitem на другое.
Я думаю, что INavigationAware не работает в этом сценарии. (право?)
Единственный подход, который я могу себе представить, это подключиться к tabheader и делать там что-нибудь.
Я рад каждому решению, которое вы можете дать мне.
заранее спасибо
1 ответ
Я прочитал ваш ответ на мой вопрос и думаю, Призма EventAggregator
могу помочь тебе. Он разработан для облегчения межмодульного общения, а также для других функций. Вот пример того, как вы можете его использовать:
Получить экземпляр EventAggregator. Я использую инъекцию зависимостей здесь:
// Ctor injection
private IEventAggregator _eventAggregator;
public YourViewModel(IEventAggregator eventAggregator)
{
_eventAggregator = eventAggregator;
}
Создайте событие для публикации (параметр для полезной нагрузки). В вашем случае выбор вкладки:
public class TabSelectedEvent:CompositePresentationEvent<object>{}
Опубликовать событие, когда выбрана вкладка;
_eventAggregator.GetEvent<TabSelectedEvent>().Publish(null);
Наконец, подпишитесь на событие и ответьте:
_eventAggregator.GetEvent<TabSelectedEvent>().Subscribe(OnTabSelectedEvent);
Теперь тебе надо идти.