Prism の Messenger を使って ViewModel から View に通知を行う方法です。
WPF アプリケーションで試してみました。
環境
- Visual Studio 2017
- .NET Framework 4.6.1
実装
Messenger クラスの作成
EventAggregator
を継承した Messenger
クラスを作成します。
using Prism.Events;
namespace ViewModels
{
class Messenger : EventAggregator
{
public static Messenger Instance { get; } = new Messenger();
}
}
ViewModel からの送信
PubSubEvent
で渡したいデータの型を指定します。
using Prism.Events;
Messenger.Instance.GetEvent<PubSubEvent<string>>().Publish("hoge");
View で受信
コードビハインドで受信します。
using Prism.Events;
Messenger.Instance.GetEvent<PubSubEvent<string>>().Subscribe(x => {
Console.WriteLine(x);
});