基于MvvmCross的应用程序无法加载设计时视图模型

时间:2013-07-10 13:47:01

标签: mvvmcross

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

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

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

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

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

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

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

1 个答案:

答案 0 :(得分:2)

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

从这些样本中,我相信我们总结了Nuget版本3.0.8.1:

  1. 支持基于Blend生成的XML数据文件的时间数据
  2. 支持基于简单C#类的设计时数据
  3. 不支持数据使用MvvmCross MvxViewModel作为基类的设计时数据
  4. 开发人员应该做第三件事(设计时数据不是真正的数据?)并不是很明显,但考虑到整体上MvvmCross宣言的目的是为了让开发人员能够选择,然后是未来MvvmCross将来会更容易。


    与此同时,如果有人想在设计时初始化对象,那么可以使用一些辅助类来启用它。

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