【问题标题】:MVVMCross How does this View get linked to the ViewModel?MVVMCross 这个 View 如何链接到 ViewModel?
【发布时间】:2016-06-24 09:50:16
【问题描述】:

我试图弄清楚为什么我在运行 iOS 应用程序时收到一条错误消息,指出无法找到正确的 ViewModel。

我的问题是,当我看到这个 example 时,我不明白 MainMenuView 在哪里绑定到 MainMenuViewModel。

谁能帮我回答这个问题?

谢谢,

PkL728

【问题讨论】:

    标签: xamarin mvvmcross


    【解决方案1】:

    它们是由类名绑定的:对于XXXView应该对应XXXViewModel

    【讨论】:

    • 所以在我的 iOS 项目中,我有一个 ProductsView 类,它扩展了 MvxTableViewController,而在我的核心项目中,我有一个 ProductsViewModel 类。当我运行我的程序时,我收到此错误:无法从定位器 MvxDefaultViewModelLocator 加载类型 LoginProductsMVVM.Core.ViewModels.ProductsViewModel 的 ViewModel... 我是否设置错了?
    • 好的...所以我的错误与我的 ProductsViewModel 构造函数中调用的方法有关,该方法出错了。没有帮助的错误信息!!谢谢罗曼!
    • 确保您已打开跟踪 - stackoverflow.com/questions/17233922/mvvmcross-mvx-trace-usage/… - 然后您将看到更多“无用”错误消息。
    • 天啊。因此浪费了 2 天。
    • 名称约定是默认设置。有几种方法可以覆盖它:mvvmcross.com/documentation/fundamentals/…
    【解决方案2】:

    只是想补充一下答案:重命名后仔细检查视图的名称(即使 Resharper 重命名也不完美)。花了几十分钟(和一个啤酒罐),捕捉到类似MvvmCross的错误Could not find view for %ViewModelName%

    【讨论】:

      【解决方案3】:

      我在一个刚刚升级到 MvvmCross 4 的项目上得到了这个。我对 MvvmCross 没有太多经验,而且该项目已经有几年没有维护了,所以可能是别的东西错了。

      我最终在 Setup::InitializeViewLookup 中对映射进行了硬编码,因为我没有时间再浪费了。

      【讨论】:

        【解决方案4】:

        对于最终来到这里遇到与我相同问题的任何人。我在 Android 项目中遇到此错误,因为我的(正确命名的)视图正在扩展 Activity 而不是 MvxActivity(当您使用 Xamarin Studio 的“添加 Android 活动”功能时很容易发生)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-08-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-10-22
          相关资源
          最近更新 更多