Binding 交换机上的mvvmcross绑定在释放时失败
我的MVVMCross应用程序中有一个奇怪的错误 考虑到以下情况:Binding 交换机上的mvvmcross绑定在释放时失败,binding,xamarin,mvvmcross,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/
<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
由于MvvmCross使用反射执行数据绑定,因此链接器没有看到选中的
属性,也没有将其包含在二进制文件中。有一个文件名LinkerPleaseInclude.cs
,您可以对其进行编辑以添加对此属性的引用
比如:
public void Include(Switch @switch)
{
@switch.CheckedChange += (sender, args) => @switch.Checked = !@switch.Checked;
}
MVVMCross的最新版本解决了此问题。下面的代码就足够了。
注意:-MvvmCross 7.0。我正在使用。但我怀疑这可以在发布之前解决
local:MvxBind="Checked IsActive"
为什么参数中需要@sign?因为“switch”在C#(switch/case)中是一个保留关键字。@允许您使用保留关键字作为标识符。