希望你能幫助我。首先,讓我解釋我的問題是什麼。Caliburn ViewModels之間的微通信
我有兩個ViewModels。第一個例如有存儲在幾個文本框中的信息。
例如
private static string _tbxCfgLogfile;
public string TbxCfgLogfile
{
get { return _tbxCfgLogfile; }
set
{
_tbxCfgLogfile = value;
NotifyOfPropertyChange(() => TbxCfgLogfile);
}
}
其他視圖模型有一個按鈕,我想從文本框保存這些數據。
它看起來像這樣
public bool CanBtnCfgSave
{
get
{
return (new PageConfigGeneralViewModel().TbxCfgLogfile.Length > 0 [...]);
}
}
public void BtnCfgSave()
{
new Functions.Config().SaveConfig();
}
我怎樣才能讓「CanBtnCfgSave」知道條件滿足與否?
我第一次嘗試是
private static string _tbxCfgLogfile;
public string TbxCfgLogfile
{
get { return _tbxCfgLogfile; }
set
{
_tbxCfgLogfile = value;
NotifyOfPropertyChange(() => TbxCfgLogfile);
NotifyOfPropertyChange(() => new ViewModels.OtherViewModel.CanBtnCfgSave);
}
}
它不工作。當我確實記得正確的時候,我可以從每個ViewModel獲取數據,但是我無法設置也沒有通知他們。是對的嗎?我是否必須使用「事件聚合器」來實現我的目標,還是有其他更簡單的方法?
感謝您的提示。它確實工作得很好。我知道有辦法做到這一點。 – Insight