(UWP)如何从diff中访问viewmodel的属性/方法。视图模型?

时间:2017-04-18 20:26:52

标签: c# xaml mvvm uwp

在我的MainView中,我有一个MainViewModel,它存在于应用程序的生命周期中。

我的MainView有一个嵌入WITHIN的框架。

从该框架导航到的每个页面都有自己的ViewModel(我认为这种方法是一个很好的模式?)。我们将调用这些ViewModels" SubViewModel"

从SubViewModel中访问MainViewModel属性的最佳方法是什么,反之亦然?

2 个答案:

答案 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

https://github.com/PrismLibrary/Prism

https://github.com/FantasticFiasco/mvvm-dialogs

答案 1 :(得分:0)

您可以使用静态属性来保存MainPageViewModel的当前实例

public static MainPageViewModel Current { get; private set; }

public MainPageViewModel()
{
     Current = this;
}

并使用它来访问其成员。

MainPageViewModel.Current.MyProperty