我的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级
链接:仅限Sdk程序集
Android手机版本为4.1.2。
当我在调试模式下运行应用时,一切正常。
但是当我在发布中运行它时,对Checked属性的绑定失败,并出现以下错误:
E / MvxBind(11670):12,70未找到视图类型 - 切换
答案 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"