複数のViewModelからステータスバーを更新するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/3869691

  •  28-09-2019
  •  | 
  •  

質問

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でそれらのメッセージを購読できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top