我正在使用Caliburn.Micro,並且在內容控制中使用了具有子虛擬機的MainWindowViewModel設置。在主VM中,我有一個子VM屬性,它允許我在虛擬機之間共享屬性。我在兩個VM上都有一個UserName屬性。在2個虛擬機之間共享屬性
在主視圖上,我在用戶名的末尾添加了一個字符串,以便對其進行個性化設置,而在子View上,我只是按原樣顯示用戶名。用戶名屬性只能在子虛擬機中編輯,而不能在主虛擬機中編輯。當我在孩子中編輯它時,它不會更新父代。我不知道如何綁定這些屬性以使父虛擬機與虛擬機同步。
主要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);
}
}
什麼是你的孩子VM,DiaryViewModel?還是不同的東西?即你應該從相同的來源'畫',並且所有的都要通過兒童虛擬機 - 你的問題應該得到解決。讓我知道一些細節,我會舉個例子。 – NSGaga 2012-04-28 17:44:46