希望你能帮助我。首先,让我解释一下我的问题是什么。
我有两个 ViewModel。第一个例如在几个文本框中存储了信息。
例如
private static string _tbxCfgLogfile;
public string TbxCfgLogfile
{
get { return _tbxCfgLogfile; }
set
{
_tbxCfgLogfile = value;
NotifyOfPropertyChange(() => TbxCfgLogfile);
}
}
另一个 ViewModel 有一个按钮,我想从文本框中保存这些数据。
它看起来像这样
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 中获取数据,但我无法毫不费力地设置或通知它们。那正确吗?我必须使用“事件聚合器”来实现我的目标还是有其他更简单的方法?