在我的MainView中,我有一个存在于应用程序生命周期的MainViewModel。(UWP)如何从diff中访问viewmodel的属性/方法。视图模型?
我的MainView有一个嵌入WITHIN框架本身。
从该框架导航到每个页面都有自己的ViewModel(我认为这种方法是一个很好的模式?)。我们将这些视图模型称为“SubViewModel”
从SubViewModel中访问MainViewModel属性的最佳方法是什么?反之亦然?
在我的MainView中,我有一个存在于应用程序生命周期的MainViewModel。(UWP)如何从diff中访问viewmodel的属性/方法。视图模型?
我的MainView有一个嵌入WITHIN框架本身。
从该框架导航到每个页面都有自己的ViewModel(我认为这种方法是一个很好的模式?)。我们将这些视图模型称为“SubViewModel”
从SubViewModel中访问MainViewModel属性的最佳方法是什么?反之亦然?
你不能让其他ViewModel可以获得ViewModels属性/方法。
这样做的好处是使用SubViewModel可以发送或发送消息和ViewModel可以处理消息的消息。
如果视图模型可以处理的SubViewModels消息,是说SubViewModel可以得到的ViewModels方法,它可以发送一个消息调用视图模型做方法和视图模型可以得到SubViewModels属性的SubViewModel可以把它的属性视图模型。
如果SubViewModels可以处理ViewModel消息,就像ViewModel可以处理SubViewModels消息一样,SubViewModels可以获得ViewModels属性。
我认为你正在寻找一个框架,我写了一个:https://github.com/lindexi/UWP/blob/master/uwp/src/Framework
有喜欢MVVMLight和this一些框架, JP.Utils.UWP
见:https://github.com/reactiveui/ReactiveUI
您可以使用一个静态属性来保存MainPageViewModel
public static MainPageViewModel Current { get; private set; }
public MainPageViewModel()
{
Current = this;
}
的当前实例,并用它来访问其成员。
MainPageViewModel.Current.MyProperty
这是一种很好的做法,还是只是一种方便?不过,你的方法是我真正想到的。 –
此方法用于UWP示例中的内容页面,以便从MainPage访问成员,如[XamlPivot](https://github.com/Microsoft/Windows-universal-samples/blob/master/Samples/XamlPivot/cs /Scenario1.xaml.cs)示例和[ApplicationResources](https://github.com/Microsoft/Windows-universal-samples/blob/master/Samples/ApplicationResources/cs/scenario1.xaml.cs)。当我需要访问来自较低级别成员的视图或视图模型时,我总是使用它,但我不知道它是否是最好的方法。很高兴看到有人有更好的解决方案。 –