うまくいけば、あなたは私を助けることができます。まず、私の問題点を説明しましょう。
2つのViewModelがあります。最初のものは、例えば、いくつかのテキストボックスに情報を保存しています。
例えば
private static string _tbxCfgLogfile;
public string TbxCfgLogfile
{
get { return _tbxCfgLogfile; }
set
{
_tbxCfgLogfile = value;
NotifyOfPropertyChange(() => TbxCfgLogfile);
}
}
もう1つの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からデータを取得できますが、何の努力もせずに設定したり通知したりすることはできません。そうですか?目標を達成するために「イベントアグリゲーター」を使用する必要がありますか、それとも別の簡単な方法がありますか?