私はあなたの問題を正しく理解していれば、これはあなたを助けるでしょう。
各ビューにViewModelがあると仮定します。 View1VM、View2VM、ViewFVMはそれぞれView1、View2、ViewFMのVMです。 MainVMをView1とView2をホストするウィンドウのViewModelとする。
ViewVMのインスタンスをMainVMに持っています。 View1VMとView2VMのインスタンスを作成する際には、MainVMのインスタンス(各ビューに関連するデータのみが公開されるようにインタフェースを使用することもできます)を注入し、ViewVM1のインスタンスを返すView1とView2の両方にプロパティを持ちます。これをxamlのViewFのdatacontextにバインドします。
コードは、View1をしてVIEW2のためにすなわち、各ビューのXAMLで
public class ViewFVM
{
//Store the state of ViewF
}
public class MainVM
{
public ViewFVM viewFVM;
public MainVM()
{
View1VM view1VM = new View1VM(this);
View2VM view2VM = new View2VM(this);
}
}
public class View1VM
{
private MainVM _mainVM;
public View1VM(MainVM mainVM)
{
_mainVM = mainVM;
}
public ViewFVM ViewFViewModel {get {return _mainVM.viewFVM;}}
}
public class View2VM
{
private MainVM _mainVM;
public View2VM(MainVM mainVM)
{
_mainVM = mainVM;
}
public ViewFVM ViewFViewModel {get {return _mainVM.viewFVM;}}
}
、のようになる、の結合を介してのDataContextとしてViewFViewModelを設定します。
。あなたのコメントは私の思考を正しい方向に向ける。私はMVCやそれに類するものの基本概念を忘れていました。データを表示しないで共有します。 – Yash