道歉,如果這真是愚蠢的問題,但我剛開始接觸caliburn.micro,我剛剛接到eventAggregator掙扎,似乎沒有什麼可以訂閱...Caliburn.Micro EventAggregator
我不確定問題是否與視圖模型或引導程序相關。這裏是視圖模型:
class MainWindowViewModel : Screen
{
private readonly IEventAggregator _eventAggregator;
public MainWindowViewModel(IEventAggregator eventAggregator)
{
_eventAggregator = eventAggregator;
_eventAggregator.Subscribe(this);
}
public void SayHello()
{
_eventAggregator.Publish("Hello World!");
}
public void Handle(string message)
{
MessageBox.Show(message);
}
}
引導程序:
class AppBootstrapper : Bootstrapper<MainWindowViewModel>
{
public static readonly Container ContainerInstance = new Container();
protected override void Configure()
{
ContainerInstance.Register<IWindowManager, WindowManager>();
ContainerInstance.RegisterSingle<IEventAggregator,EventAggregator>();
ContainerInstance.Register<MainWindowViewModel, MainWindowViewModel>();
ContainerInstance.Verify();
}
protected override IEnumerable<object> GetAllInstances(Type service)
{
return ContainerInstance.GetAllInstances(service);
}
protected override object GetInstance(System.Type service, string key)
{
return ContainerInstance.GetInstance(service);
}
protected override void BuildUp(object instance)
{
ContainerInstance.InjectProperties(instance);
}
}
任何想法,我缺少的是什麼,我覺得我不能在某處連接...
我使用SimpleInjector作爲IOC容器
編輯:
這似乎是一個很簡單的情況下I D我不知道我在做什麼。 RTFM。
實施IHandle確實有效。它似乎在第一次處理類型時被調用兩次。我會做一些調查,爲什麼。
我試過這個與IHandle接口的2個實例。 IHandle和IHandle都是。沒有效果。 –
和'SayHello'被叫?你有沒有設置一個斷點? – csteinmueller
它確實被調用和斷點。雖然我以前犯過一個錯誤。實現'IHandle'確實有效(儘管第一次發佈被稱爲'Handle'被調用兩次),但是'IHandle'什麼也不做。 –