だから..私はいくつかのコアクラスを持っています。いくつかのモジュールをロードしている間、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には反映されず、フォーゼンです。ViewModel のクラスのコンストラクタで Status プロパティの値を「Some string」に設定したところ、もちろんうまく反映されます。私が間違っていることは何ですか?ありがとう、パベル!