Призма с вкладками и лентами

Я разрабатываю приложение призмы с ленточной панелью вверху, панелью внешнего вида слева и областью содержимого с вкладками (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);

Теперь тебе надо идти.

Другие вопросы по тегам