複数のViewModelからステータスバーを更新するにはどうすればよいですか?
質問
StatusBarと複数のユーザーコントロールを備えたMainWindowがあります。各ユーザーコントロールにはViewModelがあります。複数のViewModelからStatusBarテキストをバインド/更新するにはどうすればよいですか?
解決
これは私が自分自身を使った単純なものです。
a メッセンジャー システムとそれにシングルトンインスタンスを与えてください、たとえば... StatusBarmessenger
MainWindow View-Model:
- 文字列プロパティが必要です。状態。
- CTORのStatusBarmessengerに登録する必要があります
StatusBarMessenger.Instance.Register(this, new Action(s => Status = s));
ステータスバーにテキストを送信する必要があるすべてのVMは、次のことを行うことができます。
StatusBarMessenger.Instance.Send("Hello world");
他のヒント
PRISMを使用している場合は、そのEventAgggregatorを使用して(ユーザーコントロールから)メッセージを公開し、StatusBar VMでそれらのメッセージを購読できます。
所属していません StackOverflow