【发布时间】:2016-05-19 13:20:42
【问题描述】:
我正在尝试在此处为 TipCalc 示例创建 UWP 应用版本:https://github.com/MvvmCross/MvvmCross-Samples/tree/master/TipCalc
示例中已经有一个 UWP 版本,可以正常工作。但是,我正在尝试使用 Template10 (https://github.com/Windows-XAML/Template10),但我无法让这两个库一起工作。
MvvmCross 想让我修改 OnLaunched 方法,该方法具有对根 Frame 的引用。然而,模板 10 反而抽象了这个方法,暴露了没有这样的引用的 OnStartAsync...
CreateRootFrame 模板 10 中有一个覆盖,这似乎是初始化 mvvmcross 应用程序的正确位置,但这似乎不像我预期的那样工作......
虽然启动的应用确实导航到了适当的页面,并且似乎也初始化了视图模型(相关 VM 中 Start 方法上的断点确实被命中),但页面本身是空白的。
比较两个应用程序的可视化树显示,虽然示例中现有的 UWP 应用程序有一个框架:
我的 Template10 应用正在加载一个模态对话框:
我fork了原始示例项目并添加了模板10版本,如果您想自己尝试一下:https://github.com/selaromdotnet/MvvmCross-Samples
还有其他人能够将 MvvmCross 与模板 10 集成吗?你知道我做错了什么吗,以及对一起使用这两个库的最佳实践有什么建议吗?
【问题讨论】:
-
我还尝试将 start.Start() 方法移动到 OnStartAsync,但是当我这样做时出现此错误:错误将值 \"Type\" 转换为类型 'Template10.Services.SerializationService.JsonSerializationService+容器'。快速搜索表明这是一个已修复的错误,但更新到模板 10 的最新预览版没有效果,我得到了相同的结果
-
其实我错了,更新到最新的 Template10(预览版)版本时没有得到相同的结果,而是根本没有调用 CreateRootElement,实际上已经过时了,所以我的应用程序从未初始化,我得到一个空引用错误。所以是的,肯定在这里迷路了,不胜感激!
标签: mvvmcross uwp template10