MVVMCross绑定属性在iOS模拟器中工作正常,但在设备上失败

时间:2014-03-07 12:13:50

标签: ios xamarin.ios mvvmcross

我观察到的是非常奇怪的行为。我已将位于自定义单元格视图中的UIProgressView绑定到我的视图模型的浮动属性。这里要清楚的是我的核心层视图模型:

public class DownloadCellViewModel: MvxViewModel
{
    float _Progress;
    public float Progress {
        get{
            return _Progress;
        }
        set{
            _Progress = value;
            this.RaisePropertyChanged (() => this.Progress);
        }
    }
}

这是我在UI前端层的单元视图绑定代码:

public DownloadCell (IntPtr handle) : base (handle)
    {   
        this.DelayBind(() => {
            var set = this.CreateBindingSet<DownloadCell, DownloadCellViewModel> ();

            set.Bind(ProgressDownload).For(p=>p.Progress).To(item=> item.Progress);

        set.Apply();
        });
    }

请注意,ProgressDownload是一个UIProgressView,我将它放在xib文件中。 现在的问题是,当我运行此代码时,它在模拟器中按预期工作,但在设备上我得到以下错误:

MvxBind:Warning:104,99 Failed to create target binding for binding Progress for Progress

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我相信链接器优化会导致问题 将以下内容添加到LinkerPleaseInclude.cs文件

public class LinkerIncludePlease
{
        public void Include(MvxTableViewCell vc)
        {
            vc.BackgroundColor = UIColor.Blue;
        }
}