链接器断开与CommandParameter绑定的UIBarButtonItem

时间:2013-12-04 11:49:52

标签: xamarin.ios xamarin mvvmcross

我有一个UIBarButtonItem绑定到MvvmCross命令:

set.Bind(this.deleteItem).To(vm => vm.DeleteCommand).CommandParameter(this.deleteItem);

这在链接器关闭时工作正常。但是,如果我将其设置为仅链接SDK程序集,则绑定会中断并且永远不会被触发。它默默地失败,没有错误或记录警告。

删除CommandParameter并启用链接器确实有效:

set.Bind(this.deleteItem).To(vm => vm.DeleteCommand);

为什么在启用链接器时绑定会中断?我确保链接器包含UIBarButtonItem.Clicked

1 个答案:

答案 0 :(得分:4)

想出来:链接器正在剥离ICommand的CanExecuteChanged事件,该事件通过MvxWrappingCommand中的反射使用。

修复是添加一个XML linker configuration file

<assembly fullname="System">
    <type fullname="System.Windows.Input.ICommand"></type>
</assembly>

奇怪的是,添加引用CanExecuteChanged的LinkerPleaseInclude.cs文件似乎没有保留它,不确定原因。