要在iOS中使用MvvmCross创建一个可绑定的复选框列表,我创建了一个视图类,其中包含一个checkbox元素,该元素绑定到项目视图模型:
public class CheckListItemView : BaseView
{
public CheckListItemView()
{
var set = this.CreateBindingSet<CheckListItemView, CheckListItemViewModel>();
var item = new CheckboxElement();
set.Bind(item).For(v => v.Value).To(vm => vm.IsChecked).TwoWay();
set.Apply();
this.CheckboxElement = item;
}
public new CheckListItemViewModel ViewModel
{
get { return base.ViewModel.As<CheckListItemViewModel>(); }
set { base.ViewModel = value; }
}
public Element CheckboxElement { get; set; }
}
不幸的是,在这种情况下,绑定不太可靠:我有一个按钮,用于检查所有已检查的项目和一个取消检查所有框的项目。
foreach (var checkListItemViewModel in checkList)
{
checkListItemViewModel.IsChecked = value;
}
如果我一直按下这两个按钮,在某些时候UI不会正确更新检查状态。但背景中的值是正确的。