发布时mvvmcross绑定在交换机上失败

时间:2014-02-02 00:03:33

标签: binding xamarin mvvmcross

我的MVVMCross应用程序中有一个奇怪的错误。

考虑以下情况:

<Switch
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:focusable="false"
    android:clickable="false"
    android:layout_alignParentRight="true"
    android:id="@+id/activatedSwitch"
    local:MvxBind="Checked IsActive" />
  • 编译版本:14级
  • 最低版本:等级14
  • 目标版本:第14级

  • 链接:仅限Sdk程序集

  • Android手机版本为4.1.2。

当我在调试模式下运行应用时,一切正常。

但是当我在发布中运行它时,对Checked属性的绑定失败,并出现以下错误:

  

E / MvxBind(11670):12,70未找到视图类型 - 切换

2 个答案:

答案 0 :(得分:13)

由于MvvmCross使用反射来执行数据绑定,因此链接器不会看到Checked属性,也不会将其包含在二进制文件中。您可以编辑文件名LinkerPleaseInclude.cs以添加对此属性的引用。

类似的东西:

public void Include(Switch @switch)
{
    @switch.CheckedChange += (sender, args) => @switch.Checked = !@switch.Checked;
}

答案 1 :(得分:0)

最新版本的 MVVMCross 解决了这个问题。下面的代码就够了。
注意:- MvvmCross 7.0。我在用。但我怀疑这可以在发布之前解决。

local:MvxBind="Checked IsActive"