我正在使用 Caliburn.Micro,并且在内容控件中设置了带有子 VM 的 MainWindowViewModel。在主虚拟机中,我有一个子虚拟机属性,它允许我在虚拟机之间共享属性。我在两个虚拟机上都有一个 UserName 属性。
在主视图中,我在用户名的末尾添加了一个字符串以对其进行个性化,而在子视图中,我只是按原样显示用户名。username 属性只能在子 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);
}
}
子虚拟机:
private string _userName = "John";
public string UserName
{
get { return _userName; }
set
{
_userName = value;
NotifyOfPropertyChange(() => UserName);
}
}