【发布时间】:2016-04-12 20:50:53
【问题描述】:
我将一个旧项目升级到 Xamarin.iOS Unified 和 MvvmCross 4.1。
当我运行应用程序时,出现以下异常:
MvvmCross.Platform.Exceptions.MvxException:未为 MyView 加载视图
我的课程如下所示:
MyView : MvxViewController<MyViewModel> {}
MvxViewController<T> : UIViewController, IMvxBindingContextOwner, IUIWrappable
where T : ViewModelBase
ViewModelBase : MvxViewModel {}
我怀疑我在 MyView 上缺少一个接口或其他东西以使 MvvmCross 正常运行,但我不确定这可能是什么接口。
我怀疑这是因为我已经不得不在 View 和它的 ViewModel 之间的映射中进行硬编码,以使 MvvmCross 能够通过与 MyView 关联的反射/自动发现来找到 ViewModel。也就是说,在此错误之前,我遇到了无法找到关联的 ViewModel 错误。
如果我让 MyView 实现 IMvxIosView,这个错误就会消失,然后我稍后会在我的代码中获得一个对 ViewModel 的空引用,所以在它需要的地方没有被实例化。我的印象是这一切都应该由 MvvmCross 自动处理,但我可能错了。
我正在查看https://github.com/MvvmCross/MvvmCross/wiki/Tip-Calc-A-Xamarin.iOS-UI-project等示例
TipView 包含的地方
public new TipViewModel ViewModel {
get { return (TipViewModel) base.ViewModel; }
set { base.ViewModel = value; }
}
MyView 的基础没有这样的 ViewModel 属性。我缺少什么可以访问这个?
TipCalc 的示例代码仍在引用 Cirrious 命名空间,因此可能发生了变化。
感谢任何建议。我是 Xamarin 和 MvvmCross 的新手(虽然在 Windows/iOS 开发方面经验丰富),但我无法找到最新的文档。
【问题讨论】:
-
从您的问题来看,您的要求并不完全清楚。您有更完整的可重现样品吗?