我在Windows Phone设计器中找到了一个描述NullReferenceException的主题,但是我认为这是一个有些不同的问题,因为它发生在所有平台上,与MvvmCross插件无关。
Designer(VS2012,Store / WP8 / WPF应用程序)适用于早期版本的MvvmCross。我尝试编译一个与3.0.6 NuGet包相对应的版本,我可以看到所有平台都加载了设计时模型。
最近的MvvmCross版本导致所有设计器在所有平台上引发NULL引用异常(“对象引用未设置为对象的实例”)。
尝试调试VS实例没有帮助:调用堆栈没有多说,并且那里没有MvvmCross代码。
错误与实际视图/视图模型无关:我可以从视图中删除所有控件,并且引发错误。永远不会到达视图模型构造函数代码。
所以看起来有一些MvvmCross代码(不是来自MvxView)在设计时没有成功执行。我想知道这是否是一个已知问题和/或是否有解决方法让设计师工作。
更新。我创建了一个GitHub问题,其中包含重现问题的步骤:https://github.com/slodge/MvvmCross/issues/347
答案 0 :(得分:2)
这个问题转移到了GitHub,那里有很多讨论和一些样本 - https://github.com/slodge/MvvmCross/issues/347
从这些样本中,我相信我们总结了Nuget版本3.0.8.1:
MvxViewModel
作为基类的设计时数据开发人员应该做第三件事(设计时数据不是真正的数据?)并不是很明显,但考虑到整体上MvvmCross宣言的目的是为了让开发人员能够选择,然后是未来MvvmCross将来会更容易。
与此同时,如果有人想在设计时初始化对象,那么可以使用一些辅助类来启用它。
例如,可以使用MvxColorDesignTimeHelper
在设计时环境中使用颜色插件(以及MvvmCross IoC的一小部分) - 请参阅: