В моем проекте есть три ViewModel (например, ViewModelA
, ViewModelB
и ViewModelC
).
Мне нужно написать следующую логику.ViewModelA
отправляет значение в ViewModelB
, используя EventAggregator
из Prism.ViewModelB
получает значение и отправляет его ViewModelC
.ViewModelC
получает значение и что-то делает.
Вот код:
// The data that will be send using the event aggregator.
class EventData : PubSubEvent<int>
{
}
class ViewModelA
{
IEventAggregator m_eventAggregator;
public ViewModelA(IEventAggregator eventAggregator)
{
m_eventAggregator = eventAggregator;
// Publish some value.
eventAggregator.GetEvent<EventData>().Publish(10);
}
}
class ViewModelB
{
IEventAggregator m_eventAggregator;
public ViewModelB(IEventAggregator eventAggregator)
{
m_eventAggregator = eventAggregator;
eventAggregator.GetEvent<EventData>().Subscribe(OnDataReceived);
}
void OnDataReceived(int value)
{
// Here I want to send the value to the ViewModelC. How can I do it?
}
}
PS: это часть большого проекта. Поэтому, пожалуйста, не предлагайте отправлять с ViewModelA
на ViewModelC
напрямую, без ViewModelB
.