귀하의 문제를 올바르게 이해했다면, 귀하를 도울 것입니다.
각보기에는 ViewModel이 있다고 가정합니다. View1VM, View2VM 및 ViewFVM은 View1, View2 및 ViewFM 각각의 VM입니다. MainVM을 View1과 View2를 호스팅 할 창의 ViewModel이라고합시다.
ViewVM의 인스턴스를 MainVM에 두십시오. View1VM 및 View2VM의 인스턴스를 생성하는 동안 MainVM의 인스턴스를 삽입하고 (관련 데이터 만 각 뷰에 노출되도록 인터페이스를 사용할 수도 있음) View1과 View2에 모두 mainVM의 ViewFVM 인스턴스를 반환하는 속성이 있어야합니다. 이것을 xaml의 ViewF의 datacontext에 바인드합니다. 코드 같은 것
, 뷰 1와 뷰 2에 대한 즉 각 뷰의 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;}}
}
는 바인딩을 통해 데이터 컨텍스트로 ViewFViewModel을 설정합니다.
. 귀하의 의견은 내 생각을 바른 길로 인도합니다. 나는 MVC와 비슷한 것들을 잊고 있었다. 데이터를 공유하지 않습니다. – Yash