私は Caliburn.Micro を使用しており、コンテンツ コントロールに子 VM を使用して MainWindowViewModel をセットアップしています。メイン VM には、VM 間でプロパティを共有できる子 VM プロパティがあります。両方の VM に UserName プロパティがあります。
メイン ビューでは、ユーザー名の末尾に文字列を追加してパーソナライズしていますが、子ビューではユーザー名をそのまま表示しています。ユーザー名プロパティは、子 VM でのみ編集できますが、メイン VM では編集できません。子で編集すると、親は更新されません。これらのプロパティをバインドして、親 VM を子 VM と同期させる方法がわかりません。
メイン VM:
public string UserName
{
get { return string.Format("{0}'s Diary Log", DiaryViewModel.UserName); }
}
private DiaryViewModel _diaryViewModel;
public DiaryViewModel DiaryViewModel
{
get { return _diaryViewModel; }
set
{
_diaryViewModel = value;
NotifyOfPropertyChange(() => DiaryViewModel);
}
}
子 VM:
private string _userName = "John";
public string UserName
{
get { return _userName; }
set
{
_userName = value;
NotifyOfPropertyChange(() => UserName);
}
}