При попытке построить eventaggregator иметь свойства моего object
быть переданы от MainViewModel
к SectionViewModel
Я попытался следующие множества статей (1, 2, 3 и 4) относительно того, как это работает, но мне кажется, я безвестно отсутствующим шаг ..?Не удалось найти GetEvent <SetObjectEvent> (отсутствует директива/ссылка?) - что я делаю неправильно ...?
В MainViewModel
У меня есть;
protected readonly IEventAggregator eventAggregator;
public MainViewModel(IMainViewModel mainViewModel, IEventAggregator eventAggregator)
{
...Some other Code...
this.eventAggregator = eventAggegator;
}
public Object Object
{
...Getter...
set
{
this.object = value;
this.RaisePropertyChanged();
this.EventAggregator.GetEvent<SetObjectEvent<Object>>().Publish(this.Object);
}
}
и в SectionViewModel
У меня есть;
protected readonly IEventAggregator eventAggregator;
public SectionViewModel(ISectionViewModel sectionViewModel, IEventAggregator eventAggregator)
{
this.eventAggregator = eventAggregator;;
this.eventAggregator.GetEvent<SetObjectEvent<Object>>().Subscribe((object) => { this.Object = object; });
}
кого как бросить аргумент excpetion The type or namespace name 'SetObjectEvent<>' could not be found
. Я думал, что это потому, что мне нужен глобальный EventAggregator, но кто-то заметил, что это не так.
Это настоящая статья большинства статей, которая (по крайней мере для меня) не похожа на причинение каких-либо проблем. Мне все это кажется вполне логичным, и я понимаю, что он должен делать. Однако ни одна из статей, по-видимому, не определяет «SetObjectEvent» Event
? Вместо этого создайте какой-то общий EventAggregate
и все. Вот где я как бы теряю след в том, что происходит. Для меня это звучит довольно логично, мне нужно иметь класс, похожий на «События», который может содержать все различные вызываемые события в проекте, но я бы не знал, как это сделать?
Редактировать; Поскольку this answer подразумевал, что то, что я считаю неправильным, не проблема, я перефразировал свой вопрос, чтобы более точно (?) Описать мою проблему.
Редактировать; В соответствии с поручением класс SetObjectEvent
public class SetObjectEvent<TRequest> : PubSubEvent<SetObjectEvent<TRequest>> where TRequest : IObject {}
, полученный из this SO article
Edit; изменяя его
public class SetObjectEvent : PubSubEvent<Object> {}
как предложено в нескольких комментариях дает мне такое же исключение аргумента как на GetEvent<SetObjectEvent>()
и GetEvent<SetObjectEvent<Object>>()
Вы можете скопировать вставить класс SetObjectEvent и сказать нам, где она определяется? – Igor
@Igor отредактировал его в главном сообщении – Ciphra
Похоже, что это должно быть 'public class SetObjectEvent: PubSubEvent