mvvmcross iOS Bind to list不能转换' lambda表达式'对于非委托类型' strin

本文关键字:表达式 于非委 strin 类型 lambda iOS 不能 list 转换 Bind mvvmcross | 更新日期: 2023-09-27 18:08:30

我解决了这个问题,但我想分享,因为在SO或其他地方似乎没有答案。

我的ViewModel有一个模型列表,例如

private List<string> _people;
public List<string> People 
{
get { return this._people; }
    set { this._people = value; RaisePropertyChanged (() => People); }
}

当我尝试绑定到set时。绑定MvxStandardTableViewSource,上面的邪恶错误阻止编译:

var source = new MvxStandardTableViewSource(tableView, "People");
tableView.Source = source;
var set = this.CreateBindingSet<FirstView, Core.ViewModels.FirstViewModel>();
set.Bind(source).To(vm => vm.People);

不能转换lambda expression' to non-delegate type字符串'

解决方案是向你的模型库添加一个引用。简单的对吧?但这并不明显,因为你不需要在其他移动项目中这样做——可能是因为iOS正在进行编译时间绑定。

mvvmcross iOS Bind to list不能转换' lambda表达式'对于非委托类型' strin

解决方案是向您的模型库添加一个引用。

在iOS视图中绑定的任何类型都必须有一个被iOS项目引用的程序集