如果我理解你的問題是正確的,這會幫助你。
讓我們假設,每個視圖都有一個ViewModel。假設View1VM,View2VM和ViewFVM分別是View1,View2和ViewFM的虛擬機。讓MainVM成爲將託管View1和View2的窗口的ViewModel。
在MainVM中有一個ViewFVM的實例。在創建View1VM和View2VM的實例時,注入MainVM的實例(也可以使用接口,以便只將相關數據公開給每個View),並在View1和View2中都有一個屬性,它返回mainVM的ViewFVM的實例。將它綁定到xaml中的ViewF的datacontext。
代碼會是什麼樣子,
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;}}
}
在各視圖,即,對於視圖1和視圖2的XAML,通過結合設置ViewFViewModel作爲DataContext的。
幾乎同樣的事情戰鬥。您的評論使我的思想走上正軌。我忘記了MVC和類似的基本概念。共享數據無法查看。 – Yash 2015-08-20 11:44:25