所以..我有一些核心课程。当它正在加载一些模块时,我正在尝试使用 EventAggregator.GetEvent().Publish() 向状态窗口发送一些通知。状态窗口显示:
private Core()
{
SystemManager.EventAggregator.GetEvent<StartProgressWindow>().Publish(null);
this.InitializeCore();
}
StartProgressWindow 是启动状态窗口事件的地方,InitializeCore 方法是加载所有模块的地方。
状态通知发送:
Core.EventAggregator.GetEvent<ChangeProgressStatus>().Publish("Some module is loading");
和订户:
eventAggregator.GetEvent<ChangeProgressStatus>().Subscribe((message) =>
{
this.Status = message;
});
状态属性:
public string Status
{
get
{
return status;
}
set
{
this.status = value;
RaisePropertyChanged("Status");
}
}
捆绑:
<Label Content="{Binding Status, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"/>
而且,实际上,问题是:
属性随我发送到的所有状态而变化。但它并没有反映在 UI 上,它是 forzen。我在 ViewModel 类的构造函数中将 Status-property 的值设置为“Some string”,当然它反映得很好。我做错了什么?谢谢,帕维尔!