【问题标题】:Is there a different method to bind iOS ICommands in MvvmCross 3.0.14?在 MvvmCross 3.0.14 中绑定 iOS ICommands 有不同的方法吗?
【发布时间】:2013-12-03 04:04:13
【问题描述】:

MvvmCross N+1 天的教程 N=5 下载后在 Xamarin Studio 中构建良好。但是,如果我将程序集从 3.0.5 更新到 3.0.14,iOS 项目将不再构建。错误与这两行有关:

set.Bind(button).To(vm => vm.MyCommand);
set.Bind(button2).To(vm => vm.GoSecondCommand);

错误信息如下:

无法将“lambda 表达式”转换为非委托类型“字符串”

它的工作方式是否发生了变化?对象浏览器显示采用Func<TSource, object> 的正确方法,但编译器似乎想要使用string 版本。奇怪的是,它上面的两行绑定到常规属性工作正常,但 ICommand 绑定的东西失败了。

【问题讨论】:

    标签: c# ios mvvmcross


    【解决方案1】:

    自拍摄 N=5 以来,xamarin 已经添加了自己的 pcl 支持

    作为此支持的一部分,您需要将 Touch UI 项目的项目引用添加到 Add Reference 的 Assemblies 部分中的 System.Windows.dll

    此 System.Windows 程序集包含 ICommand 的类型转发定义 - 这应该会清除您的编译错误

    【讨论】:

    • 我已经仔细检查了我是否有 System.Windows.dll,但仍然得到他遇到的同样的错误。你对我还能看的其他地方有什么建议吗?我已经用谷歌搜索了这个。
    • 对于其他任何人,如果您无法使其正常工作,请将您的 Nuget 包与 MvvmCross 教程 (github.com/MvvmCross/MvvmCross-Tutorials) 下的“PictureTaking”解决方案进行比较。不知何故,我有一个我不需要的名为“MvvmCross”的包。一旦我删除它,它就可以正常工作了。
    猜你喜欢
    • 1970-01-01
    • 2013-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多