1

我在 Windows Phone 设计器中找到了描述 NullReferenceException 的主题,但是我相信这是一个有些不同的问题,因为它发生在所有平台上并且与 MvvmCross 插件无关。

  1. Designer(VS2012,Store/WP8/WPF 应用程序)适用于早期版本的 MvvmCross。我尝试编译一个对应 3.0.6 NuGet 包的版本,我可以看到设计时模型在所有平台上都加载了。

  2. 最近的 MvvmCross 版本导致所有设计人员在所有平台上引发 NULL 引用异常(“对象引用未设置为对象的实例”)。

  3. 尝试调试 VS 实例并没有帮助:调用堆栈并没有说太多,那里没有 MvvmCross 代码。

  4. 该错误与实际的视图/视图模型无关:我可以从视图中删除所有控件,但仍然会引发错误。永远不会到达视图模型构造函数代码。

所以看起来有一些 MvvmCross 代码(不是来自 MvxView)在设计时没有成功执行。我想知道这是否是一个已知问题和/或是否有让设计师工作的解决方法。

更新。我创建了一个 GitHub 问题,其中包含重现问题的步骤:https ://github.com/slodge/MvvmCross/issues/347

4

1 回答 1

2

这个问题转移到了 GitHub,那里有很多讨论和一些示例 - https://github.com/slodge/MvvmCross/issues/347

从这些示例中,我相信我们得出了 Nuget 版本 3.0.8.1 的结论:

  1. 支持基于 Blend 生成的 XML 数据文件的时间数据
  2. 支持基于简单 C# 类的设计时数据
  3. 不支持数据使用 MvvmCrossMvxViewModel作为基类的设计时数据

开发人员应该做第三件事并不完全明显(设计时数据不是真实数据?),但考虑到整体 MvvmCross 宣言广义上旨在使开发人员能够选择并给予他们选择,那么未来的 MvvmCross 将使这在未来更容易。


与此同时,如果有人想在设计时初始化对象,那么周围有一些帮助类来实现这一点。

例如,颜色插件(和 MvvmCross IoC 的一小部分)可以在设计时环境中使用MvxColorDesignTimeHelper- 请参阅:

于 2013-07-12T10:24:42.697 回答