MessengerでViewModelからViewに通知する

Messenger

前回までで、足し算プログラムの基本的な部分はできました。
ですが、例えば計算が終わったあと、ダイアログを表示する場合はどうでしょうか。
今ViewModelからViewへの通知はBindingのINotifyPropertyChangedしか方法がありません。
INotifyPropertyChangedではViewでダイアログを表示することは出来ないので別の方法が必要になります。

それがMessengerです。
Messengerは、ViewModelやModelからViewに通知したいときに一意の文字列とパラメータを渡してViewに通知を行うことができます。

計算終了をMessengerで通知する

通知を行うMessengerはMessenger.Defaultで取得することができます。
今回はMainViewModel.csのCalcCommandで計算が終わったとに、Messengerで通知を送ってみましょう。

Sendメソッドは送りたいメッセージのパラメータ、送りたいメッセージの一意の名前を引数としています。

ではMainPage.xaml.csのコンストラクタ内にMessengerのメッセージを受信する処理を書きましょう

Calcボタンをクリックすると計算結果がダイアログで表示されれば完成です。

10