複数の ViewModel 間でデータを共有するにはどうすればよいですか?
たとえば、アプリケーションに Project という名前のクラスがあります。
public class Project : ModelBase
{
private string _projectName;
public string ProjectName
{
get { return _projectName; }
set
{
_projectName = value;
RaisePropertyChanged(() => ProjectName);
}
}
}
複数の ViewModels アプリケーションでは、ActiveProject にアクセスする必要があります。
ViewModel 間で Project を共有する最良の方法は何ですか?
- メディエーター パターン ? (メッセージ)
- 静的オブジェクト
- シングルトン パターン (ある場合、どのように?)
以前に Messaging を使用したことがありますが、多くのコーディングが必要です。すべての ViewModel について、ActiveProject プロパティを作成し、それを更新するためにメッセンジャーを登録する必要があります。
MVVM Light フレームワークを使用しています。
コード例をいただければ幸いです。