如何基于MvxViewModelRequest为UWP创建视图?

时间:2018-03-29 12:13:39

标签: c# uwp mvvmcross

我正在使用:

  • C#
  • MvvmCroos.Core 5.6.3。
  • MvvmCroos.Platform 5.6.3。
  • Microsoft.NETCore.UniversalWindowsPlatform 5.2.2
  • VS 2015
  • Windows 10目标版本:Build 14393

    对于Wpf方法,MvvmCross支持基于MvxViewModelRequest的CreateView行为,将视图作为FrameworkElement类型返回。

示例:

var request = new MvxViewModelRequest(viewModelType, parameterBundle, presentationBundle, null);

var view = Mvx.Resolve<IMvxSimpleWpfViewLoader>().CreateView(request);

不幸的是,在UWP土地上不存在CreateViewIMvxSimpleWpfViewLoader等价物。我如何实现相同的功能?有什么建议吗?

1 个答案:

答案 0 :(得分:0)

在UWP中,视图为Page。页面通常不是直接创建的(虽然它仍然可以),而是显示在Frame的上下文中,它充当容器并跟踪每个页面的导航堆栈和导航参数。使用Page时,NavigatedTo也会在使用NavigatedFromFrame.Navigate事件导航时收到通知。

如果您查看MvxWindowsViewPresenter code,则可以看到如何在UWP中处理导航。我们使用Frame而不是创建页面实例,而是传递我们要导航到的页面类型,F0329 17:37:40.771555 24587 insert_splits.cpp:35] Unknown blob input data to layer 0 *** Check failure stack trace: *** 负责页面的生命周期,包括实例化。