在我的MainView中,我有一个MainViewModel,它存在于应用程序的生命周期中。
我的MainView有一个嵌入WITHIN的框架。
从该框架导航到的每个页面都有自己的ViewModel(我认为这种方法是一个很好的模式?)。我们将调用这些ViewModels" SubViewModel"
从SubViewModel中访问MainViewModel属性的最佳方法是什么,反之亦然?
答案 0 :(得分:0)
您无法让其他ViewModel获取ViewModels属性/方法。
这样做的好处是使用SubViewModel可以发送或发送消息的消息,ViewModel可以处理消息。
如果ViewModel可以处理SubViewModels消息,也就是说SubViewModel可以获取ViewModels方法,它可以发送消息调用ViewModel来做方法而ViewModel可以获取SubViewModel属性,SubViewModel可以发送它' ViewModel的属性。
如果SubViewModel可以处理ViewModel消息,就像ViewModel可以处理SubViewModels消息一样,SubViewModel可以获取ViewModels属性。
我认为你找到了一个框架,我写了一个:https://github.com/lindexi/UWP/blob/master/uwp/src/Framework
有一些像MVVMLight和this的框架, JP.Utils.UWP
见:https://github.com/reactiveui/ReactiveUI
答案 1 :(得分:0)
您可以使用静态属性来保存MainPageViewModel的当前实例
public static MainPageViewModel Current { get; private set; }
public MainPageViewModel()
{
Current = this;
}
并使用它来访问其成员。
MainPageViewModel.Current.MyProperty